이를 한 색깔로만 채워지도록 계속 4등분 하여, 파란색과 하얀색 각각의 색종이가 몇개 존재하는가를 구하는 문제이다.
딱봐도 4등분하는 재귀 문제로 보인다.
풀이 방법은 아래와 같다.
white = 0; blue = 0; split(p,q,size) { // p,q 점을 시작으로 size크기의 정사각형이 // 하얀색이나 파란색으로 가득 찼는지 검사. if(isWhite(p,q,size) == true) { white++; return; } if(isBlue(p,q,size) == true) { blue++; return; } // 각 사분면으로 재귀 size /= 2; split(p,q,size); split(p+size,q,size); split(p,q+size,size); split(p+size,q+size,size); }소스
댓글 없음:
댓글 쓰기