[백준] 1759번 암호 만들기

거북이·2023년 2월 13일
0

백준[골드5]

목록 보기
9/82
post-thumbnail

💡문제접근

  • 암호의 모음은 최소 1개, 자음은 최소 2개여야 하며 정렬된 상태여야 한다.
  • combinations을 이용해서 푸는게 가장 간단할 것 같아서 combinations을 이용했다. 백트래킹 연습을 위해서 백트래킹으로 푸는 방법도 조만간 수정해서 올려야겠다.

💡코드(메모리 : 31256KB, 시간 : 48ms)

from itertools import combinations
import sys
input = sys.stdin.readline

# 모음 리스트
li = ['a', 'e', 'i', 'o', 'u']
L, C = map(int, input().strip().split())
arr = list(map(str, input().strip().split()))

result = []
for i in combinations(arr, L):
    i = list(i)
    i.sort()
    i = str(''.join(map(str, i)))
    result.append(i)

def check(password):
    res = ""
    global vo, con
    password_li = list(password)
    password_li.sort()
    for i in password_li:
        if i in li:
            vo += 1
        else:
            con += 1
        res += i
    if vo >= 1 and con >= 2:
        return res

result.sort()
for i in result:
    vo, con = 0, 0
    if i == check(i):
        print(i)

💡소요시간 : 16m

0개의 댓글