1759 암호만들기
접근 : 재귀로 문자열 조합 만들어가면서 지정한 길이(L) 만큼의 문자열을 완성했을 때 조건을 만족하면 결과에 추가, 아니면 중단
풀이방법
- 일단 먼저 알파벳 정렬
- 인덱스를 0부터 1씩 증가시키면서 재귀로 들어가기
- 마지막에 매번 모음, 자음 카운트 계산하지 않고, 모음 자음 개수 정보를 함께 넘겨주기
def make(s,mo,ja,idx):
global stack
if len(s) == L:
if mo>=1 and ja>=2:
print(s)
return
for i in range(idx,C):
if al[i] in ['a','e','i','o','u']:
make(s+al[i],mo+1,ja,i+1)
else:
make(s+al[i],mo,ja+1,i+1)
L,C = map(int, input().split())
al = list(input().split())
al.sort()
make('',0,0,0)
계속 출력초과 에러가 나서 봤더니, 예시 테스트케이스에 L이 4였던 걸 종료 조건(len(s)==4)으로 설정해버렸던게 원인.
'Problem Solving > Baekjoon(BOJ)' 카테고리의 다른 글
[ BOJ ] 1652 누울 자리를 찾아라 - python 문제풀이 (0) | 2021.07.19 |
---|---|
[ BOJ ] 11724 연결 요소의 개수 - python 문제풀이 (0) | 2021.07.19 |
[ BOJ ] 7562 나이트의 이동 - python 문제풀이 (0) | 2021.07.19 |
[ BOJ ] 2309 일곱난쟁이 - python 문제풀이 (0) | 2021.07.19 |
[ BOJ ] 1260 DFS와 BFS - python 문제풀이 (0) | 2021.07.16 |
댓글