반응형
문제 링크
https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
문제 풀이
소스 코드
import java.util.*;
public class Main {
static int [][] paper;
static int ans [] = {0,0};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
paper = new int[N][N];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
paper[i][j] = sc.nextInt();
}
}
cut(N, 0, 0);
System.out.println(ans[0]);
System.out.println(ans[1]);
}
public static void cut(int n , int x , int y) {
if(isSame(n, x, y)) return;
cut(n/2, x, y);
cut(n/2, x, y+n/2);
cut(n/2, x+n/2, y);
cut(n/2, x+n/2, y+n/2);
}
public static boolean isSame(int n , int x , int y) {
int val = paper[x][y];
for (int i = x; i < x+n; i++) {
for (int j = y; j < y+n; j++) {
if(val != paper[i][j]) return false;
}
}
ans[val]++;
return true;
}
}
반응형
'Problem Solving' 카테고리의 다른 글
[ 백준 14503 ] 로봇 청소기 - Java (0) | 2021.02.05 |
---|---|
[ 백준 1520 ] 내리막 길 - Java (0) | 2021.01.04 |
[ 백준 2805 ] 나무자르기 - Java (0) | 2020.12.31 |
[ 백준 1629 ] 곱셈 - Java (0) | 2020.12.18 |
[ 백준 1149 ] RGB 거리 - Java (1) | 2020.12.16 |