재귀

    [백준][파이썬] 11729번

    2161번 : 카드1 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력하..

    [알고리즘][파이썬] Exhaustive Search / 완전 탐색

    2023.07.07... 5학기 여름방학에 다시 시작하는 혼자 하는 알고리즘 레쮸고 !!!!!!!!! 완전 탐색이란 모든 경우의 수를 다 세는 방법 Brute force 직관적이어서 이해하기 쉬운 방법 상대적으로 구현이 간단한 방법 문제의 정확한 결과값을 얻어낼 수 있는 가장 확실하며 기초적인 방법 시간 복잡도가 O(N^2)인 방법 경우의 수에 따라 실행 시간이 비례하기 때문에 입력 값의 범위가 작은 경우 유용 완전 탐색 알고리즘 종류 Brute Force Bitmask (비트마스크) Recursive (재귀) Permutation (순열) BFS (너비우선탐색) & DFS (깊이우선탐색) Brute Force 반복문 or 조건문으로 모든 경우를 체크하여 정답 구하기 (ex) 000~999 사이의 자물쇠..

    [알고리즘][파이썬] 재귀함수 / Recursive Function

    알고리즘 공부하다가.. 한 번 정리해둬야겠다 싶은 재귀함수 레쮸고 재귀함수 (Recursive Function) 자기 자신을 호출하는 함수 프랙털(Fractal) 구조와 흡사 기본 예제 def recursive(): print("재귀 함수 호출") recursive() recursive() 위와 같이 코드 실행 시 "재귀 함수 호출" 문자열이 계속 출력되다가 오류 메세지가 출력된다. "RecursionError: maximum recursion depth exceeded while pickling an object" 재귀의 최대 깊이를 초과했다는 내용으로 파이썬 인터프리터는 호출 횟수 제한이 있기 때문에 생기는 오류이다. (프로그래밍 대회에서는 파이썬의 재귀 호출 제한을 처리하기 위해 라이브러리를 사용하..