2차원 배열을 4등분으로 계속 분할해나가면서 푸는 문제이기 때문에 재귀를 이용하여 쉽게 풀 수 있다.
quardTree() 라는 재귀함수를 만들어서 각 이차원 배열의 가장 왼쪽 위의 위치(r, c)와, 배열의 크기(size)를 인수로 입력받는다. -> quardTree(int r, int c, int size)
재귀의 base case는 언제인가?
-
size = 1로, 더 이상 분할이 불가능한 경우
-
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 |