Today's special moments become memories of tomorrow.

BOJ

[백준 1992번] 쿼드트리 (java)

lotus lee 2021. 3. 9. 10:26

 

1992번: 쿼드트리

첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또

www.acmicpc.net

 

2차원 배열을 4등분으로 계속 분할해나가면서 푸는 문제이기 때문에 재귀를 이용하여 쉽게 풀 수 있다.

 

quardTree() 라는 재귀함수를 만들어서 각 이차원 배열의 가장 왼쪽 위의 위치(r, c)와, 배열의 크기(size)를 인수로 입력받는다. -> quardTree(int r, int c, int size)

 

 

재귀의 base case는 언제인가?

  1. size = 1로, 더 이상 분할이 불가능한 경우

  2. size가 1보다는 크지만, (r, c)를 가장 왼쪽 위로 하면서 가로세로 길이가 size인 이차원 배열의 모든 원소가 0 이거나 1이어서, 더 이상 분할할 필요가 없는 경우

 

소스코드 : 

 

'BOJ' 카테고리의 다른 글

[백준 2630번] 색종이 만들기 (java)  (0) 2021.03.09
[백준 2263번] 트리의 순회 (java)  (3) 2021.03.09
[백준 8983번] 사냥꾼 (java)  (0) 2021.03.08
[백준 2873번] 롤러코스터 (java)  (0) 2021.03.08
[백준 1080번] 행렬 (java)  (0) 2021.03.07