Posts [알고리즘] 백준 1759 - 암호 만들기
Post
Cancel

[알고리즘] 백준 1759 - 암호 만들기


문제

1759 - 암호 만들기


접근

사전 순으로 정렬한 후 순서에 맞게 중복없이 l개를 선택한다.

이게 정답 후보가 된다.

이제 정답 후보 중에 주어진 규칙인 자음, 모음의 개수를 확인하고 맞는 것을 최종적으로 출력한다.

코드

  • 파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
def roleCheck(arr, vowel):
    minV = 1
    minC = 2
    ans = []
    for item in arr:
        vCnt = 0
        cCnt = 0
        for s in item:
            if s in vowel:
                vCnt += 1
            else:
                cCnt += 1
        if vCnt >= minV and cCnt >= minC:
            print(item)

def bf(arr, start, l, cnt, password, ans):
    if cnt == l:
        return password
    if start == len(arr):
        return False

    for i in range(start, len(arr)):
        pw = bf(arr, i+1, l, cnt+1, vowel, password + arr[i], ans)
        if pw:
            ans.append(pw)


vowelList = ['a', 'e', 'i', 'o', 'u']
l, c = map(int, input().split())
arr = list(map(str, input().split()))
arr.sort()
ans = []
start = 0
cnt = 0
password = ''
bf(arr, start, l, cnt, password, ans)
ans = roleCheck(ans, vowelList)


This post is licensed under CC BY 4.0 by the author.