[코딩테스트] 백준 암호 만들기

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


[코딩테스트] 백준 암호 만들기 1


[코딩테스트] 백준 암호 만들기 2

from itertools import combinations

alphabet = set((chr(i) for i in range(ord('a'), ord('z')+1)))
vowels = ('a', 'e', 'i', 'o', 'u')
consonants = list(alphabet - set(vowels))

l, c = map(int, input().split())
passwords = sorted(list(map(str, input().split())))
results = ()
for password in combinations(passwords, l):
    vowel_count = 0
    cons_count = 0
    for c in password:
      if c in vowels:
        vowel_count += 1
        continue
      if c in consonants:
        cons_count += 1
    if vowel_count >= 1 and cons_count >= 2:
      results.append(''.join(password))

for result in results:
  print(result)

들어가기 전에 2 초기화 변수했다.

  • 모음 : 목록, 모음
  • 자음: 목록, 자음

주어진 입력을 받은 후 sorted()함수를 통해 얻은 문자 정렬했다.

다음 itertools~에서 combinations 모듈의 사용 l소문자의 가능한 모든 조합찾다

가능한 암호를 통해 반복 password교육 알파벳 모음만약에 vowel_count붓다 +1그리고 자음이라면 cons_count붓다 +1 그래서

password가다 다중 모음과 자음으로 구성되어 있는지 확인하다.

password모든 알파벳 확인 password다음 조건이 충족될 때 results에 추가합니다.

  • vowel_count >= 1 : 적어도 하나의 컬렉션으로 구성
  • cons_count >= 2 : 최소 2개의 자음으로 구성

results목록 항목을 하나씩 인쇄하여 문제를 해결하십시오.하다.