[baekjoon] 암호 만들기

김민서·2024년 1월 11일
0

알고리즘 문제풀이

목록 보기
29/47

링크텍스트
주어진 문자들로 조합 가능한 암호들을 출력하는 프로그램을 만드는 문제이다.
이 문제는 파이썬의 itertools 라이브러리를 사용하여 쉽게 해결할 수 있다.
itertools 라이브러리의 combinations 함수를 사용하여 가능한 조합들을 만들면 되는데, 이때 조건을 만족시키지 않는 암호는 빼면 된다.
조건은 암호가 알파벳이 증가하는 순서로 배열되어야 한다는 것과 암호는 최소 한 개의 모음과 최소 두 개의 자음으로 이루어져야 한다는 것이다.

from itertools import combinations
l, c = input().split()
str = sorted(input().split())

combination = combinations(str, int(l))

for combi in combination:
    count = 0
    for i in combi:
        if i in "aeiou":
            count += 1			# 암호 중 모음 개수 세기

    if count >= 1 and int(l) - count >= 2:	
    # 모음이 한 개 이상이고, 자음(전체-모음)이 두개 이상이라면 조건을 충족하므로 출력한다.
        print(''.join(combi))
    

0개의 댓글