코딩테스트/백준 (python)

백준 / 1759번 / 암호 만들기 / python 파이썬

seulll 2024. 9. 13. 18:00

 

문제 : https://www.acmicpc.net/problem/1759

 

 

코드

from itertools import combinations

L, C = map(int, input().split())
alpabet = sorted(list(input().split()))
vowel = {'a', 'e', 'i', 'o', 'u'}

result = []
for pw in combinations(alpabet, L):
    count_vowels = sum(1 for i in pw if i in vowel)
    if count_vowels >= 1 and L - count_vowels >= 2:
        result.append(''.join(pw))

for pw in result:
    print(pw)

 

서로 다른 L개의 암호를 구성하는데 최소 한 개의 모음과 최소 두 개의 자음으로 구성해야 하는 문제이다.

최소한의 모음은 count_vowels >= 1로, 최소한의 자음은 L - count_vowels >= 2 코드로 조건을 걸어 구할 수 있다.