이모저모

DFS - 백준 암호만들기 본문

coding/알고리즘,자료구조

DFS - 백준 암호만들기

Jeo 2022. 1. 24. 21:15

진짜 문제를 잘 읽어야 한다..! (사실 너무 문제가 길어가지고 내가 대충 읽기는 했다..) 모음이랑 자음의 개수 조건을 완전히 생각 안한채로 풀고 제출하니까 당연히 틀렸고..ㅎㅎ 수정해서 다시 제출했다.

n,m = map(int, input().split())
chars = list(input().split())
chars.sort()
res = [0]*n
result_list = []
vowels = ["a", "e", "i", "o", "u"]

def DFS(L, start):
    if L == n:
        result = "".join(res)
        v_count = 0
        for vowel in vowels:  # 모음 나올때마다 카운팅
            v_count += result.count(vowel)
        if 1 <= v_count <= n - 2:
            result_list.append(result)
        return
    else:
        for i in range(start, m-n+L+1):
            res[L] = chars[i]
            DFS(L+1, i+1)

DFS(0, 0)

for result in result_list:
    print(result)
Comments