본문 바로가기
Problem Solving/String

[문자열] 백준 1759번: 암호 만들기 / 골드 5

by ggyongi 2021. 6. 16.
반응형

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

 

1759번: 암호 만들기

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

www.acmicpc.net

import itertools
r, n = map(int, input().split())
letters = list(input().split())
consonants = []
vowels = []
for i in range(n):
    if letters[i] in "aeiou":
        vowels.append(letters[i])
    else:
        consonants.append(letters[i])

words = []
for i in range(1, min(r-1,len(vowels)+1)):
    # i is number of vowels in word
    vow = list(itertools.combinations(vowels, i))
    conso = list(itertools.combinations(consonants, r-i))
    for j in range(len(vow)):
        for k in range(len(conso)):
            p = list(vow[j]+conso[k])
            a = ''.join(sorted(p))
            words.append(a)
words.sort()
for i in range(len(words)):
    print(words[i])

시키는 거 잘 하면 되는 문제다.

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글