https://www.acmicpc.net/problem/1759

 

1759번: 암호 만들기

첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.

www.acmicpc.net

문제

조건에 만족하는 문자를 찾아낸다.

입력

첫 번째 줄 => L:비밀번호 자리 수  C: 서로다른 알파벳의 개수

두 번째 줄 => 서로 다른 문자들

풀이

라이브러리 itertools의 combinations(조합) 사용

조건에 알맞는 문자열 출력

# 1759번 암호 만들기
# combiantions 사용예정
from itertools import combinations

l, c = map(int, input().split())
vowels = ['a', 'e', 'i', 'o', 'u']
arr = input().split()
arr.sort()

for password in combinations(arr, l):
    cnt = 0
    for i in password:
        if i in vowels:
            cnt += 1
    
    if cnt >= 1 and l-cnt >= 2:
        print(''.join(password))

출력결과

개발자 성현