황소개발자

백준 1759 파이썬 python : 암호 만들기 @@황소처럼 우직하게@@ 코로나 조심하세요 본문

백준 문제 풀이

백준 1759 파이썬 python : 암호 만들기 @@황소처럼 우직하게@@ 코로나 조심하세요

hjp845 2020. 2. 28. 16:56
반응형
import sys
input = sys.stdin.readline


def next_permutation(lst):
    n = len(lst)
    i = n - 1
    while i > 0 and lst[i - 1] >= lst[i]:
        i -= 1
    if i == 0:
        return [-1]
    j = n - 1
    while lst[i - 1] >= lst[j]:
        j -= 1
    tmp = lst[j]
    lst[j] = lst[i - 1]
    lst[i - 1] = tmp
    lst = lst[:i] + sorted(lst[i:])
    return lst
L, C = map(int, input().split())
lst = input().split()
lst.sort()
bit = [0] * (C - L) + [1] * L
bites = []
while True:
    if bit == [-1]:
        break
    bites = [bit.copy()] + bites
    bit = next_permutation(bit)
for bit_one in bites:
    moum_count = 0
    jaum_count = 0
    password = []
    for idx, x in enumerate(bit_one):
        if x == 1:
            if lst[idx] == 'i' or lst[idx] == 'o' or lst[idx] == 'e' or lst[idx] == 'a' or lst[idx] == 'u':
                moum_count += 1
            else:
                jaum_count += 1
            password.append(lst[idx])
    if moum_count < 1:
        continue
    if jaum_count < 2:
        continue
    print(''.join(password))


 

반응형
Comments