*문제 출처는 백준에 있습니다.
문제 제목: 암호 만들기 / 1759번 (골드 5단계)
문제 사이트: https://www.acmicpc.net/problem/1759
문제 설명
나의 풀이
import itertools
def find_password(password):
vowels = {'a', 'e', 'i', 'o', 'u'} # 모음
num_vowels = len([char for char in password if char in vowels]) # 모음 개수 확인
num_consonants = len(password) - num_vowels # 자음 개수 확인
return num_vowels >= 1 and num_consonants >= 2 # 모음 1개 이상이면서 자음이 2개 이상이면 반환
N, C = map(int, input().split())
letter = list(map(str, input().split())) # 문자들
letter.sort() # 오름차순 정렬
combination_letter = itertools.combinations(letter, N) # 모든 경우의 수 출력
passwords_vaild = [] # 유효한 패스워드만 넣기
for com in combination_letter:
if find_password(com):
passwords_vaild.append(''.join(com))
for i in passwords_vaild:
print(i)
※ 알아야 할 것
import itertools 이용하여 조합을 사용할 수 있다. 조합을 사용하지 않는 풀이 방법에서는 DFS등을 사용할 수 있을 것 같다.
'코딩테스트(프로그래머스 & 백준) > 백준-Python' 카테고리의 다른 글
백준 / 차트 / 1239번 / Python (5) | 2024.07.22 |
---|---|
백준 / 최소비용 구하기 / 1916번 / Python (0) | 2024.07.19 |
백준 / 줄어드는 수 / 1174번 / Python (0) | 2024.07.17 |
백준 / 노드사이의 거리 / 1240번 / Python (0) | 2024.07.16 |
백준 / Contact / 1013번 / Python (3) | 2024.07.15 |