반응형
https://www.acmicpc.net/problem/1759
1759번: 암호 만들기
첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.
www.acmicpc.net
💡IDEA
수학, 브루트포스를 사용하는 문제이다.
주어지는 L, C가 15 이하인 수이기 때문에, 브루트포스로 해결할 수 있을 것 같았다.
바로 itertools의 combinations 함수, 즉 조합 함수를 사용하여 C개의 문자 중 L개를 선택한 조합들을 찾는다. 이 암호들 중 자음이 두개 이상, 모음이 하나 이상인 암호만 출력하도록 한다.
📌CODE
import sys
from itertools import combinations
input = sys.stdin.readline
L, C = map(int, input().split())
arrs = sorted(list(input().split()))
for comb in combinations(arrs, L):
a, b = 0, 0
for x in comb:
if x in ['a', 'e', 'i', 'o', 'u']:
a += 1
else:
b += 1
if a>=1 and b>=2:
print(''.join(comb))
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ][python] 6588. 골드바흐의 추측 (0) | 2022.07.21 |
---|---|
[BOJ][python] 2293. 동전 1 (0) | 2022.07.21 |
[BOJ][python] 2583. 영역 구하기 (0) | 2022.07.21 |
[BOJ][python] 11057. 오르막 수 (0) | 2022.07.21 |
[BOJ][python] 4948. 베르트랑 공준 (0) | 2022.07.21 |