[백준] 1759 암호 만들기(python)

Ming·2022년 2월 11일
0

코테

목록 보기
5/11

1759 암호 만들기

문제

암호는 서로 다른 L개의 알파벳 소문자들로 구성되며 최소 한개의 모음과 최소 두개의 자음으로 구성되어야한다. 그리고 알파벳이 암호에서 증가하는 순서로 배열되어야한다.(abc는 가능하지만 bac는 가능하지 않다)
C개의 문자들이 주어졌을 때 가능성 있는 암호들 모두 구해야 한다.

구현

암호의 길이와 문자의 개수, 주어질 알파벳들을 입력받는다.

[코드 설명]
1. 알파벳을 순서대로 정렬을 한다
2. combinations 함수를 이용해 주어진 알파벳 C개로 길이가 L인 조합을 구한다.

itertools.combinations(C, L)

  1. 1에서 구한 조합들 중 모음이 1개 이상 자음이 2개 이상인지 확인 후 만족하면 count를 한다

    [코드]

import sys
import itertools

l, c=map(int, input().split())
ch=list(sys.stdin.readline().split())
ch.sort() #알파벳 순서 정렬
passwords=list(itertools.combinations(ch, l)) #암호 조합 저장
for password in passwords : #모음 1개 이상 자음 2개 이상 인지 확인
    vo = 0
    co = 0
    for i in range(l) :
        if password[i] in 'aeiou' : vo+=1  #모음인 경우
        else: co+=1 #자음 인 경우
    if vo>=1 and co>=2: #조건에 맞는 경우 출력
        print(''.join(password))

0개의 댓글

관련 채용 정보