백준 1759 파이썬
문제
암호만들기
풀이
조건:
1. 암호의 알파벳은 오름차순이다.
2. 모음 1개이상, 자음 2개이상이다.
3. 길이는 L이다.
가능한 종류는 백트래킹으로 전부 찾아낸다.
# 암호만들기
mo_list=['a','e','i','o','u']
L,C=map(int,input().split())
# L 은 암호길이
# C 는 사용 문자 종류
alpha=list(input().split())
alpha.sort()
# 모음 갯수 , 자음 갯수
def make_pwd(mo,ja,pwd,pwd_len,last_idx):
if mo>=1 and ja>=2 and len(pwd)==pwd_len:
# 모음 개수 1 이상, 자음 개수 2이상, 암호문 길이가 L일 때
print(pwd)
return
for c in range(last_idx+1,len(alpha)):
if alpha[c] in mo_list:
make_pwd(mo+1,ja,pwd+alpha[c],pwd_len,c)
if alpha[c] not in mo_list:
make_pwd(mo,ja+1,pwd+alpha[c],pwd_len,c)
# 초기
for i in range(len(alpha)):
if alpha[i] in mo_list:
make_pwd(1,0,alpha[i],L,i)
else:
make_pwd(0,1,alpha[i],L,i)
결과
Author And Source
이 문제에 관하여(백준 1759 파이썬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chuneeeee/백준-1759-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)