[백준] 1759번(암호 만들기)

·2023년 7월 6일

백준 문제풀이

목록 보기
101/159

백준 1759번


최종 제출 코드

n, m = map(int, input().split())
array = list(input().split())
array.sort()

mono = ['a', 'e', 'i', 'o', 'u']
stack = []

def dfs(index):
  
  if len(stack) == n:
    cnt = 0
    for i in range(len(stack)):
      if stack[i] in mono:
        cnt += 1
    if cnt > 0 and n-cnt > 1:
      print(''.join(stack))
    return
    
  for i in range(index, len(array)):

    stack.append(array[i])
    dfs(i+1)
    stack.pop()

dfs(0)

◼ 조합 만들기 문제와 유사

  • stack의 길이가 n과 같아졌을 때 조건(모음이 1개 이상, 자음이 2개 이상)을 만족하는지 확인
  • 조건을 만족한 경우에만 문자열 형태로 출력
profile
백엔드 개발자가 되고 싶어요(22.8.15~)

0개의 댓글