본문 바로가기
백준

백준 2563. 색종이

by 29살아저씨 2021. 8. 20.
반응형

🅰 백준 2563. 색종이

 

2563번: 색종이

첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변

www.acmicpc.net

✏️ 문제 풀이

  • 겹치는 부분만 구하면 쉽게 풀 수 있다.
  • 색종이를 2차원 배열로 생성하고, 10x10 색종이가 들어오면 그 위치에 1을 더해주었다.
  • 만약 10x10 색종이 면적 내 1 이상인 부분이 있으면 겹치는 부분이므로 따로 cnt를 해주고
  • 마지막에 전체 면적-cnt를 해줘서 영역의 넓이를 구해주었다.

✏️ 소스코드

package _0810;

import java.util.Scanner;

public class Main_실버5_2563_손은성 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int cnt = 0;
		int p[][] = new int[100][100]; // 색종이 2차원 배열 생성
		for (int i = 0; i < n; i++) {
			int x1 = sc.nextInt(); 
			int y1 = sc.nextInt();
			for (int x = x1; x < x1 + 10; x++) { // 주어지는 x~x+10부터
				for (int y = y1; y < y1 + 10; y++) { // y~y+10까지
					p[x][y]++;  // 1씩 더해줌
					if(p[x][y]>1) { // 만약 1보다 크면 
						cnt++; // cnt++
					}
				}
			}
		}
		System.out.println(n*100-cnt); // 전체면적 - 겹치는 부분
	}
}

 

✅ 후기

  • x~x+10까지 하는데 부등호를 <=를 해서 애를 먹었다. =이 되버리면 11가지가 되기 때문에 =부등호를 빼는게 중요했다. 
  • 간단한 실수였지만 찾는데 오래걸렸다. 앞으로는 브레인스토밍을 다 한후에 코딩을 해야겠다.
반응형

'백준' 카테고리의 다른 글

백준 16926. 배열 돌리기1  (0) 2021.08.20
백준 1987. 알파벳  (0) 2021.08.20
백준 3109. 빵집  (0) 2021.08.20
백준 15686. 치킨배달  (0) 2021.08.13
백준 1080. 행렬  (0) 2021.08.13

댓글