문제 출처 : www.acmicpc.net/problem/2661
문제 해석 : 좋은 수열이란 수열 중 어느 수열도 인접한 수열이 같지 않다는 것이다.
문제 풀이 : 재귀함수를 이용해서 풀이할 수 있다.
풀이 시간 (기록용) : 30분
풀이 코드
import sys
def check(s):
for i in range(1, (len(s) // 2) + 1):
leng = i
start = 0
start2 = start + i
for j in range(len(s) - (leng * 2) + 1):
if s[start + j:start + j + leng] == s[start2 + j:start2 + j + leng]:
return False
return True
def make_num(number, N):
if check(number) is False:
return
if len(number) == N:
print(number)
sys.exit()
else:
for j in range(1, 4):
make_num(number + str(j), N)
N = int(input())
make_num('1', N)
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 3055 탈출 문제 풀이 (0) | 2021.04.23 |
---|---|
[알고리즘][Python] 백준 11659 구간 합 구하기 4 문제 풀이 (0) | 2021.04.21 |
[알고리즘][Python] 백준 16928 뱀과 사다리 게임 문제 풀이 (0) | 2021.04.21 |
[알고리즘][Python][C++] 백준 2493 탑 문제 풀이 (1) | 2021.04.01 |
[알고리즘][C++] 백준 9205 맥주 마시면서 걸어가기 문제 풀이 (0) | 2021.03.31 |