문제
https://www.acmicpc.net/problem/1992
문제 설명
문제 풀이
https://www.acmicpc.net/problem/1780
이 문제랑 풀이 방식이 비슷했다.
재귀 호출을 통해 해결할 수 있는 문제다.
코드
import java.io.*;
import java.util.*;
class Main {
static String[] map;
static StringBuilder result = new StringBuilder();
//압축
static void zip(int row, int col, int size){
//사이즈가 1일때
if(size == 1) {
if(map[row].charAt(col) == '1')
result.append(1);
else
result.append(0);
}
else {
boolean flag = true;
char ch = map[row].charAt(col);
for(int i = row; i < row + size; i++) {
for(int j = col; j < col + size; j++){
if(ch != map[i].charAt(j)) {
flag = false;
break;
}
}
}
//압축이 가능하면
if(flag) {
result.append(ch);
}
else {
result.append("(");
zip(row, col, size / 2);
zip(row, col + size / 2, size / 2);
zip(row + size / 2, col, size / 2);
zip(row + size / 2, col + size / 2, size / 2);
result.append(")");
}
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
map = new String[N];
//입력
for(int i = 0; i < N ;i++) {
map[i] = br.readLine();
}
zip(0, 0, N);
//출력
System.out.println(result);
}
}
'🧑💻코딩 테스트 > 백준 (BOJ)' 카테고리의 다른 글
[코딩테스트/백준 알고리즘] 1074번 - Z (Java, 자바 풀이) (0) | 2023.01.18 |
---|---|
[코딩테스트/백준 알고리즘] 1389번 - 케빈 베이컨의 6단계 법칙 (0) | 2023.01.13 |
[코딩테스트/ 백준 알고리즘] 17626번 - Four Squares (Java, 자바 풀이) (0) | 2023.01.05 |
[코딩테스트/백준 알고리즘] 7576번 - 토마토 (Java, 자바 풀이) (0) | 2022.12.30 |
[코딩테스트/백준 알고리즘] 1931번 - 회의실 배정 (Java, 자바 풀이) (0) | 2022.12.29 |
댓글