[BOJ 1759] 암호 만들기(Python)
문제
문제 해설
주어진 알파벳들을 조합해 정렬하는 문제입니다.
모음이 최소 하나, 자음이 최소 두개인 것을 인지하고 풀어야합니다.
정규 표현식을 이용해 문제를 풀 수도 있어 첨부합니다.
풀이 코드
from itertools import combinations
answer = []
l, c = map(int, input().split())
for com in combinations(list(map(str, input().split())), l):
cnt = 0
for ch in com:
if ch in "aeiou":
cnt += 1
# 모음이 최소 하나, 자음이 최소 두개
if cnt >= 1 and l - cnt >= 2:
answer.append("".join(sorted(com)))
for ans in sorted(answer):
print(ans)
정규 표현식을 이용한 풀이
from itertools import combinations
import re
answer = []
l, c = map(int, input().split())
for com in combinations(list(map(str, input().split())), l):
# 모음만 저장
arr = re.findall("[aeiou]", "".join(com))
if len(arr) >= 1 and l - len(arr) >= 2:
answer.append("".join(sorted(com)))
for x in sorted(answer):
print(x)
Author And Source
이 문제에 관하여([BOJ 1759] 암호 만들기(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qweadzs/BOJ-1759-암호-만들기Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)