코딩테스트/백준

백준 2630 : 색종이 만들기 _자바 Java

플래시🦥 2023. 1. 30.
반응형

https://www.acmicpc.net/problem/2630

 

2630번: 색종이 만들기

첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.

www.acmicpc.net


check(시작X,시작Y,나눠진 크기)

 

import java.io.*;
import java.util.*;

public class Main {
	static int[][] arr;
	static int white=0,blue=0;
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		StringTokenizer st;
		arr= new int[N][N];
		
		for(int i=0;i<N;i++) {
			st=new StringTokenizer(br.readLine()," ");
			for(int j=0;j<N;j++) {
				arr[i][j]=Integer.parseInt(st.nextToken());	
			}
			
		}
		
		check(0,0,N);
		System.out.println(white+"\n"+blue);
		
	}// main()
	
	static void check(int X,int Y,int N) {
		for(int i=X;i<N+X;i++) {
			for(int j=Y;j<N+Y;j++) {
				if(arr[i][j]!=arr[X][Y]) {
					int size= N/2;
					check(X, Y,size);
					check(X + size, Y,size);
					check(X, Y + size,size);
					check(X +size, + size,size);

                    return;
				}
			}
		}
		
		if(arr[X][Y]==0)
			white++;
		else
			blue++;
		
	}//check();
	
}// class Main
728x90
반응형

댓글