반응형
https://www.acmicpc.net/problem/1759
1759번: 암호 만들기
첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.
www.acmicpc.net
import itertools
r, n = map(int, input().split())
letters = list(input().split())
consonants = []
vowels = []
for i in range(n):
if letters[i] in "aeiou":
vowels.append(letters[i])
else:
consonants.append(letters[i])
words = []
for i in range(1, min(r-1,len(vowels)+1)):
# i is number of vowels in word
vow = list(itertools.combinations(vowels, i))
conso = list(itertools.combinations(consonants, r-i))
for j in range(len(vow)):
for k in range(len(conso)):
p = list(vow[j]+conso[k])
a = ''.join(sorted(p))
words.append(a)
words.sort()
for i in range(len(words)):
print(words[i])
시키는 거 잘 하면 되는 문제다.
댓글