끄적끄적 코딩
article thumbnail
Published 2023. 2. 16. 02:55
[Java] 백준 2563번 색종이 알고리즘
728x90

10*10의 색종이의 위치가 주어질때 차지하는 면적을 구하는 문제입니다.

100*100의 범위이므로 101*101크기의 배열을 만들어줍니다.
10*10에 해당하는 부분을 true처리를 해줍니다.

전부 처리 한 후 true인 부분을 카운트해서 출력해줍니다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n = Integer.parseInt(br.readLine());
		int ans = 0;
		boolean[][] map = new boolean[101][101];
		for(int c=0; c<n; ++c) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			int a = Integer.parseInt(st.nextToken());
			int b = Integer.parseInt(st.nextToken());
			for(int i=0; i<10; ++i) {
				for(int j=0; j<10; ++j) {
					if(!map[a+i][b+j]) {
						map[a+i][b+j] = true;
						++ans;
					}
				}
			}
		}
		
		bw.write(ans + "\n");
		bw.close();
	}
}

검색 태그