문제 참고 : https://algospot.com/judge/problem/read/QUADTREE
algospot.com :: QUADTREE
쿼드 트리 뒤집기 문제 정보 문제 대량의 좌표 데이터를 메모리 안에 압축해 저장하기 위해 사용하는 여러 기법 중 쿼드 트리(quad tree)란 것이 있습니다. 주어진 공간을 항상 4개로 분할해 재귀적
algospot.com
예제 입력
4
w
xbwwb
xbwxwbbwb
xxwwwbxwxwbbbwwxxxwwbbbwwwwbb
예제 출력
w
xwbbw
xxbwwbbbw
xxwbxwwxbbwwbwbxwbwwxwwwxbbwb
public static void main(String[] args) {
System.out.println(solution("xbwwb"));
System.out.println(solution("xbwxwbbwb"));
System.out.println(solution("xxwwwbxwxwbbbwwxxxwwbbbwwwwbb"));
}
public static String solution(String treeStr) {
return reverseTree(treeStr, 0);
}
static String reverseTree(String treeStr, int point) {
char pointValue = treeStr.charAt(point);
if(!(pointValue == 'x')) {
return String.valueOf(pointValue);
}
String upperLeft = reverseTree(treeStr, point + 1);
String upperRight = reverseTree(treeStr, point + 1 + upperLeft.length());
String lowerLeft = reverseTree(treeStr, point + 1 + upperLeft.length() + upperRight.length());
String lowerRight = reverseTree(treeStr, point + 1 + upperLeft.length() + upperRight.length() + lowerLeft.length());
return new StringBuilder("x").append(lowerLeft).append(lowerRight).append(upperLeft).append(upperRight).toString();
}
'코딩테스트 > 분할 정복' 카테고리의 다른 글
쿼드 트리 압축하기 (0) | 2023.08.07 |
---|---|
Quick sort (0) | 2023.08.01 |
Merge sort (0) | 2023.08.01 |