https://www.acmicpc.net/problem/1759
1759번: 암호 만들기
첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.
www.acmicpc.net
문제 풀이
모음 vowels
자음 Consonants
기본 dfs에서 모음과 자음의 개수를 확인만 하면 문제가 쉽게 풀린다.
모음의 개수1개와 자음의개수 2개가 포함되어있는지 확인하고 맞다면 출력한다.
코드
import sys
input = sys.stdin.readline
"""
모음vo, 자음co의 개수를 1개와 2개 체크후 맞으면 print
"""
L, C = map(int,input().split())
arr = list(map(str,input().split()))
arr.sort()
ans = []
vo_type = ["a", "e", "i", "o", "u"]
def dfs(x):
if len(ans) == L:
vo, co = 0, 0
for i in range(L):
if ans[i] in vo_type:
vo += 1
else:
co += 1
if vo>=1 and co>=2:
print(*ans, sep="")
return
for i in range(x,C):
if arr[i] not in ans:
ans.append(arr[i])
dfs(i)
ans.pop()
dfs(0)
'백준 > 문제풀이_python' 카테고리의 다른 글
10819 차이를 최대로 _python (0) | 2022.10.21 |
---|---|
10974 모든 순열 _python (0) | 2022.10.18 |
15666 N과M(12) _python (0) | 2022.10.17 |
15665 N과M(11) _python (0) | 2022.10.17 |
15664 N과M(10) _python (0) | 2022.10.17 |
댓글