# 재귀

[백준] 11729: 하노이 탑
이 문제를 풀기에 앞서 사전지식으로는 재귀함수에 대한 이해가 필요하다.재귀 (Recursion) 함수란 특정 함수 내에서 자기 자신을 다시 호출하여 문제를 해결해나가는 함수입니다. 반드시 함수 안에 종료구간인 Base Case가 있어야함 (무한 호출방지를 위해)예시)

[백준 14503. 로봇 청소기]
로봇 청소기와 방의 상태가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오.로봇 청소기가 있는 방은 $N \\times M$ 크기의 직사각형으로 나타낼 수 있으며, $1 \\times 1$ 크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는
Ch4 알고리즘 문제풀이 39-50 (알고문풀3-5)
최댓값 알고리즘 클래스 모듈 만들어 사용 실행파일 평균,최댓값,편차 구하는 함수 실행파일 최솟값 알고리즘 클래스모듈 만들어 사용 평균,최솟값,편차 구하기 실행파일 클래스 만들기 실행파일 최빈값 알고리즘 최댓값 구하는 모듈 최빈값 구하고 이쁘게 출력하는

[백준 9663. N-Queen]
N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.재귀와 백트래킹을 활용하였다.가로, 세로, 대각선을 검사하는 세가지 배열을 만들고, 같은 줄에 퀸

자료구조와 함께 배우는 알고리즘 입문 [파이썬] - 5장. 재귀 알고리즘
재귀함수란자기 자신을 호출하는 함수 ex) 점화식, n!(팩토리얼)1개 이상의 base case(종료상황) 존재, 수렴하도록 작성base case에 도달할때까지 함수 호출재귀시작은 n 부터지만 반환, 계산은 1부터메모리 스택이 넘치면 (stack overflow) 프
Ch3 알고리즘 25-30 (알고리즘6-7)
하노이의 탑 (재귀함수 이용)퍼즐게임의 일종으로, 세 개의 기둥을 이용해서 원판을 전부 다른 기둥으로 옮기면 되는 게임제약조건 : 한 번에 한 개의 원판만 옮길 수 있음. 큰 원판이 작은 원판 위에 있어서는 안 됨.\-> 가장 큰 원판 빼고 나머지 원판들부터 보조기둥으
Ch3 알고리즘 01-24 (알고리즘1-5)
알고리즘 : 문제를 풀어나가는 절차 선형 검색 선형(일렬)으로 나열되어 있는 데이터를 순차적으로 스캔하면서 원하는 값을 찾음 보초법 : 마지막 인덱스에 찾으려는 값을 추가해서 찾는 과정을 간략화함 -> 만약 찾아낸 인덱스값이 맨 끝 인덱스라면, 그 숫자는 그 전까지
재귀로 세자리 자연수 만들기(permutation 순열)
1,2,3,4를 이용하여 세자리 자연수를 만드는 방법(순서 o, 중복 x)0,1,2,3으로 되어 있는 배열을 순서를 바꿔가며 출력한다.예를 들어1 2 31 2 41 3 2...4 1 34 1 2재귀를 통해 모든 상황을 탐색하는 건 똑같지만조건을 visited 배열을 통

피보나치 알고리즘
피보나치수열은 제0항을 0, 제1항을 1로 두고, 둘째 번 항부터는 바로 앞의 두 수를 더한 수로 놓는다. 1번째 수를 1로, 2번째 수도 1로 놓고, 3번째 수부터는 바로 앞의 두 수를 더한 수로 정의하는 게 좀더 흔하게 알려져 있는 피보나치 수열이다.16 번째 항까

[BaekJoon] 14725 개미굴 (Java)
1. 문제 링크 https://www.acmicpc.net/problem/14725 2. 문제 요약 색을 표현하는 기본 요소를 이용하여 표시할 수 있는 모든 색 중 대표적인 색을 고리 모양으로 연결하여 나타낸 것을 색상환이라고

표현 가능한 이진트리 150367
이진 트리가 성립할 수 있는 조건을 생각해보면 된다.자식이 존재한다면 부모가 존재해야 한다. 자식이 존재하지 않더라도 부모는 존재할 수 있다.이것은 기본적인 내용이다. 더 깊이 생각해보면 자식의 자식이 존재하지만, 자식이 존재하지 않다면 그것은 잘못된 것이다. 즉 밑에

[BaekJoon] 2342 Dance Dance Revolution (Java)
https://www.acmicpc.net/problem/2342DDR은 발판에서 주어진 스텝에 맞춰 나가는 게임인데, 발판은 하나의 중점을 기준으로 위, 아래, 왼쪽, 오른쪽으로 연결되어 있습니다. 편의상 중점을 0, 위를 1, 왼쪽을 2, 아래를 3, 오른

[Section 2] 재귀(2)
사진은 두번째로 에펠탑 본 날 - 마르스 광장의 에펠탑은 언제나 거대하고 아름답다 아 어렵다..빨리 쉽게 끝낼거라 생각했는데 결국 checkpoint 에서 라이브 강의 보고 배웠다.. 배열에서 "" 가 중복으로 들어가는게 계속 에러나서 못해결했는데 생각해보니 그냥 단순
알고리즘 강의 정리8 : 퀵 정렬
합병 정렬과 같은 가정으로 작동한다.피벗 포인트라는 요소를 정해서 그 피벗 포인트보다 작은 숫자는 피벗 포인트 왼쪽으로 옮김피벗포인트보다 큰 숫자는 피벗 포인트 오른쪽으로 옮김.피벗포인트는 ‘올바른 위치’에 있음.이 과정을 재귀적으로 반복. 피벗 포인트 왼쪽에 있는 덩

TIL-JAVA 재귀
3월 14일 재귀학습 정리. 자바 인텔리제이 사용시 주소값이 출력되는 문제: toString()메소드 사용으로 해결 문제의 크기를 점점 작은 단위로 쪼갤 수 있어야 합니다.재귀 호출이 종료되는 시점이 존재해야 합니다.입출력 값을 단순하거나 추상적으로 정의한다.주어진 입

[Section 2] 재귀(1)
사진은 루브르 박물관, "나폴레옹의 대관식" - 제일 큰 그림이라고 했던가? 여튼 지나갈때마다 넋놓고 보게되는 그림... 드농관의 이 방에는 "민중을 이끄는 자유의 여신", "메두사의 뗏목" 그리고 이 그림이 나란히 있다 재귀 함수.. 개념은 쉽지만 늘 어려운 알고리즘