https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • DP
  • 다익스트라
  • 다이나믹프로그래밍
  • 재귀
  • 스택
  • counter
  • Python
  • LIS
  • 유니온 파인드
  • 큐
  • heapq
  • 백트래킹
  • python3
  • 프로그래머스
  • 최대공약수
  • 그리디
  • 최소힙
  • 재귀함수
  • 파이썬
  • 이분탐색
  • 다이나믹 프로그래밍
  • 12015
  • DFS
  • 유클리드호제법
  • MST
  • BFS
  • 최단경로
  • 백준
  • 이분 탐색
  • 그래프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 15649 풀이 (재귀함수, 백트래킹)

2021. 2. 15. 20:03

음 백트래킹이 먼지 몰랐다. 그래서 여기저기 기웃거려본 결과 트리를 만들때 불필요한걸 쳐내면서 트리를 만드는거 같다. 물론 이 문제에 백트래킹을 어떻게 적용해야하는지 전혀 이해못했다.

그냥 재귀함수로 적용해서 풀어보자! 라는 마인드로 풀었는데 어찌저찌 풀리긴 풀렸다.

 

순서는 다음과 같다.

1. 빈 리스트, n, m을 인자로 넣어준다.

2. for 을 이용하여 사용되지 않은 숫자를 리스트에 추가하며 재귀함수를 실행시킨다.

3. m을 하나씩 줄여서 m이 0이 되면 리스트에 저장된 값을 출력해준다.

n,m = map(int,input().split())
Map=[i for i in range(1,n+1)]

def back(tlist, n,m):
    if m == 0:
        for i in tlist:
            print(Map[i],end=' ')
        print()
        return

    for i in range(n):
        if i not in tlist:
            tlist.append(i)
            back(tlist,n,m-1)
            tlist.pop()

back([],n,m)

 그렇게 풀었더니 어찌저찌 풀렸다.

재귀함수가 너무 어렵게 느껴졌는데 이번에 쉬운 문제를 풀었더니 나름 자신감이 상승했다. 좋다.

'알고리즘' 카테고리의 다른 글

백준 9663 풀이 (백트래킹, 재귀함수)  (0) 2021.02.16
백준 15650 풀이 (재귀함수)  (0) 2021.02.15
백준 11651 풀이 (sort, 여러 인자 정렬하기)  (0) 2021.02.14
백준 2108 풀이 (python, collections, Counter)  (0) 2021.02.13
#4 알고리즘 공부 2/12 리뷰  (0) 2021.02.12
    '알고리즘' 카테고리의 다른 글
    • 백준 9663 풀이 (백트래킹, 재귀함수)
    • 백준 15650 풀이 (재귀함수)
    • 백준 11651 풀이 (sort, 여러 인자 정렬하기)
    • 백준 2108 풀이 (python, collections, Counter)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바