728x90
https://www.acmicpc.net/problem/1992
package BKD_0x0B_Recursion;
import java.io.*;
import java.util.StringTokenizer;
public class BOJ_1992 {
static char[][] input;
static int white, blue =0;
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// StringTokenizer x = new StringTokenizer(br.readLine());
int n = Integer.parseInt(br.readLine());
input = new char[n][n];
// 배열 입력값
for(int i=0;i<n;i++){
String str = br.readLine();
for(int j=0;j<n;j++){
input[i][j] = str.charAt(j);
}
}
func(n,0,0);
bw.flush();
bw.close();
}
// 시작점 a, b 한 변의 길이 n
static void func(int n, int a, int b) throws IOException{
if(check(n,a,b)){
int val = input[a][b];
bw.write(val);
return;
}
bw.write('(');
int newN = n/2;
for(int i=a;i<a+n;i+=newN){
for(int j=b;j<b+n;j+=newN){
func(newN,i,j);
}
}
bw.write(')');
}
// 한 변의 길이 , 시작점 a,b
static boolean check(int n, int a, int b){
char init = input[a][b];
for(int i=a;i<a+n;i++){
for(int j=b;j<b+n;j++){
if(init != input[i][j]) {
return false;
}
}
}
return true;
}
}
재귀가 발생하는 곳 기준 앞 뒤에 괄호를 두어야 한다고 판단하였다.
728x90
'🐣 알고리즘 삐약 > 💻 백준 삐약' 카테고리의 다른 글
97 삐약 : 백준 2448 | 별 찍기 - 11 [바킹독| 재귀 |JAVA] (1) | 2024.09.15 |
---|---|
96 삐약 : 백준 2447 | 별 찍기 - 10 [바킹독| 재귀 |JAVA] (0) | 2024.09.15 |
94 삐약 : 백준 2630 | 색종이 만들기 [바킹독| 재귀 |JAVA] (0) | 2024.09.11 |
93 삐약 : 백준 1780| 종이의 개수 [바킹독| 재귀 |JAVA] (0) | 2024.09.10 |
92 삐약 : 백준 1074| Z [바킹독| 재귀 |JAVA] (0) | 2024.09.10 |