✏️ 문제풀이/백준

[백준/Java] 2563번 :: 색종이

bono-hye 2024. 4. 24. 23:04

 

🌱 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main
{
	public static void main(String[] args) throws NumberFormatException, IOException 
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		int[][] arr = new int[100][100];
		int sum = 0;
		
		for(int i=0; i<n; i++)
		{
			StringTokenizer st = new StringTokenizer(br.readLine());
			
			int x = Integer.parseInt(st.nextToken());
			int y = Integer.parseInt(st.nextToken());
			
			for(int j=x; j< x+10; j++)
			{
				for(int k=y; k< y+10; k++)
				{
					if(arr[j][k] == 1)
						continue;
					arr[j][k] = 1;
					sum += 1;
				}
			}
		}
		
		System.out.println(sum);
	}
}

💡 정리

문제를 보고 수학적 계산식 밖에 안떠올라서 어떻게 풀어야 할지 한참을 방향을 잡지 못했다. 2차원 배열에 속해있는 문제인데 아예 배열 생각을 못했던 바보 같은 사람~

2차원 배열에 1을 채워넣고 이미 1인 값은 continue 수행하게 한다. 그럼 겹치는 부분이 중복 계산되지 않을 것!

이번 문제는 다양한 코드를 보고 도움을 얻어 풀었던 것 같다.

담에는 시간이 오래 걸려도 혼자 풀어봐야지 아자아자!