재귀 썸네일형 리스트형 [백준] 1992번 - 쿼드트리(Quad Tree) (재귀) (Swift) 쿼드트리 문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다. 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다 위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이.. 더보기 [백준] 2630번 - 색종이 만들기 (재귀) (swift) 재귀란? 하나의 함수에서 자기 자신을 다시 호출해 작업을 수행하는 알고리즘이다. 절차지향적 사고 vs 귀납적 사고 → 과정을 하나하나 따라가는 대신 귀납적인 사고로 이해하기 재귀 함수의 조건 특정 입력에 대해서는 자기 자신을 호출하지 않고 종료되어야 함(Base condition) 모든 입력은 base condition을 수렴해야 함 → 이 두 조건 중 어느 하나라도 지켜지지 않는다면 재귀 함수는 결과를 내지 못하고 무한히 들어가다가 런타임 에러가 날 것 재귀에 대한 정보 1 함수의 정의를 명확하게: 함수의 인자로 어떤 것을 받고 어디까지 계산한 후 자기 자신에게 넘겨줄지 명확하게 정해야 함 모든 재귀 함수는 반복문만으로 동일한 동작을 하는 함수를 만들 수 있음. 재귀는 반복문으로 구현했을 때에 비해 코.. 더보기 이전 1 다음