
[Algorithm] 백준_Z_1074번 (JAVA) 분할정복
·
Algorithm
📝문제https://www.acmicpc.net/problem/1074Z 1074번티어 : 골드 5💡풀이문제 유형분할정복 걸린 시간40분? 50분? 시간 복잡도O(N) 풀이 방법 도출r과 c가 현재 사이즈를 사등분 후 왼쪽 위인지, 오른쪽 위인지, 왼쪽 아래인지, 오른쪽 아래인지 판단하는 문제다.우선 size = 2^N으로 정의 가는하고, 이를 사등분하려면 newSize = size/2가 된다.그럼 이때 (0,0)을 기준으로 0 + newSize, 0 + newSize와 r,c를 비교 검사해 위치를 구한다.이후 왼쪽 위인 경우는 count를 그대로, 오른쪽 위인 경우 count에 newSize*newSize를 더해준다. 왼쪽 아래인 경우는 newSize*newSize*2, 오른쪽 아래는 newSiz..