본문 바로가기
Algorithm/Failed

[백준][2661] 백트랙킹

by Baley 2023. 1. 9.

https://www.acmicpc.net/problem/2661

 

2661번: 좋은수열

첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다.

www.acmicpc.net

import sys

def check(res):
    for i in range(1, len(res)//2+1):
        if res[-i*2:-i] == res[-i:]:
            return True
    return False


def backtracking(L, res):
    global result
    if check(res):
        return
    if L == n:
        print(res)
        sys.exit(0)
    else:
        for i in range(3):
            backtracking(L+1, res+ls[i])


if __name__ == "__main__":
    n = int(input())
    print('n :', n)
    ls = ["1", "2", "3"]
    result = 0
    
    for j in range(3):
        backtracking(1, ls[j])

'Algorithm > Failed' 카테고리의 다른 글

[LeetCode][316] 스택, 재귀를 이용해 다시 풀 문제  (0) 2023.01.13

댓글