공부 기록장
[백준 - Python] 1759. 암호 만들기 (완전 탐색) 본문
https://www.acmicpc.net/problem/1759
코드
from itertools import combinations
l, c = map(int, input().split())
ch = list(map(str, input().split()))
ch.sort() # 조합 사용 전에 정렬
per = list(combinations(ch, l))
for p in per: # p는 가능한 한 가지 조합 경우
cnt = 0
cnt2 = 0
for ele in p:
if ele == 'a' or ele == 'e' or ele == 'i' or ele == 'o' or ele == 'u':
cnt += 1
if ele != 'a' and ele != 'e' and ele != 'i' and ele != 'o' and ele != 'u':
cnt2 += 1
if cnt > 0 and cnt2 > 1:
for ele in p:
print(ele, end='')
print()
C개의 문자 중 L개의 문자를 선택해서 가능한 암호를 만든 후에
최소 한 개의 모음과 최소 두 개의 자음 조건을 만족하는 경우에만 출력을 하도록 하였다.
사전식으로 정렬된 암호여야 하는데 조합을 사용해 경우를 구할 것이기 때문에
입력을 받아서 가능한 조합 경우의 수를 구하기 전에
C개의 문자를 정렬부터 해주었다.
'코딩 테스트 > 백준 문제 풀이' 카테고리의 다른 글
[백준 - Python] 10971. 외판원 순회 2 (완전 탐색) (0) | 2024.02.05 |
---|---|
[백준 - Python] 14888. 연산자 끼워넣기 (완전 탐색) (0) | 2024.02.02 |
[백준 - Python] 15686. 치킨 배달 (완전 탐색) (0) | 2024.02.02 |
[백준 - Python] 14889. 스타트와 링크 (완전 탐색) (0) | 2024.02.01 |
[백준 - Python] 10819. 차이를 최대로 (완전 탐색) (0) | 2024.02.01 |