[TIL]24-12-21

김슬아·2024년 12월 20일

정글 사람들과 같이 하고있는 알고리즘 스터디에서 내가 낸 문제가
백트래킹을 활용하는 문제였는데, 백트래킹 자체가 어려워서 일단 답을 봤고..
답을 봤는데도 잘 이해가 안가서 N과 M 이라는 백트래킹 기초문제를 먼저 풀었다.

이것도 gpt가 알려준 백트래킹 기본 개념과 블로그를 참고하긴 했다.

import sys
input=sys.stdin.readline
N,M=map(int,input().split())
visited=[False]*(N+1)
def func(num_list):
    if len(num_list)==M:
        print(*num_list)
        return
    for i in range(1,N+1):
        if not visited[i]:
            visited[i]=True
            num_list.append(i)
            func(num_list)
            visited[i]=False
            num_list.pop()
func([])

정글에서도 느낀거지만.. 재귀함수, dp, 그리고 어느정도 암기가 필요한 알고리즘 기법들(백트래킹, 냅색, 유니온파인드 등등)이 제일 어려운것같다...

정글에서 어려웠던 문제 유형들 위주로 알고리즘 스터디 외적으로도 차근차근 풀어봐야겠다..!

profile
개발자/디자이너 둘다 잘하고싶은 코린이

0개의 댓글