본문 바로가기

코딩테스트/분할 정복4

쿼드 트리 압축하기 문제 : https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 입력 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또는 1의 숫자로 이루어져 있으며, 영상의 각 점들을 나타낸다. 출력 영상을 압축한 결과를 출력한다. 예제 입력 1 복사 8 11110000 11110000 00011.. 2023. 8. 7.
쿼드 트리 뒤집기 (문제 ID: QUADTREE, 난이도: 하) 문제 참고 : 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")); .. 2023. 8. 3.
Quick sort public static void main(String[] args) { int[] src = new int[]{1, 9, 8, 5, 4, 2, 3, 7, 6}; printArray(src); midPivotSort(src, 0, src.length-1); printArray(src); } private static void midPivotSort(int[] src, int start, int end) { if(start >= end) return; int part = partition(src, start, end); if(start < part-1) midPivotSort(src, start, part-1); if(part < end) midPivotSort(src, part, end); } priva.. 2023. 8. 1.
Merge sort 출처 : https://en.wikipedia.org/wiki/Merge_sort public static void main(String[] args) { int[] src = new int[]{1, 9, 8, 5, 4, 2, 3, 7, 6}; int[] tmp = new int[src.length]; printArray(src); mergeSort(src, tmp, 0, src.length-1); printArray(src); } private static void mergeSort(int[] src, int[] tmp, int start, int end) { if(start < end) { int mid = (start + end) / 2; mergeSort(src, tmp, start, mid); .. 2023. 8. 1.