티스토리 뷰

PS

BOJ 1759 암호 만들기

plr3270 2022. 9. 4. 15:09

문제

 

1759번: 암호 만들기

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

www.acmicpc.net

 

\(C\) 개의 알파벳이 주어졌을 때, 모음이 1개 이상, 자음이 2개 이상 포함된 크기 \(L\)의 가능한 모든 조합을 구하는 문제. 모든 경우의 수를 출력해야 하기 때문에, 백트래킹으로 풀 수 있으며 시간제한은 넉넉하다.

 

더보기
l,c = map(int,input().split())
c = sorted(input().split())

def f(flag,n,m,ls):
    if len(ls) == l:
        if flag == 0 or m < 2:
            return 0
        return print(*ls,sep='')
    for i in range(n,len(c)):
        if 'aeiou'.find(c[i]) != -1: 
            f(1 | flag, i+1,m, ls+[c[i]])
        else:    
            f(flag,i+1,m+1,ls+[c[i]])

f(0,0,0,[])

'PS' 카테고리의 다른 글

BOJ 17136 색종이 붙이기  (0) 2022.09.11
BOJ 2098 외판원 순회  (0) 2022.08.28
BOJ 9466 (텀 프로젝트)  (0) 2021.12.26
BOJ 3078 (좋은 친구)  (0) 2021.12.26
BOJ 2304  (0) 2021.11.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함