티스토리 뷰

코딩테스트/백준

[BJ] 2563. 색종이

jhk828 2021. 2. 9. 22:39

2563. 색종이

www.acmicpc.net/problem/2563

 

2563번: 색종이

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

www.acmicpc.net

 

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

// 210209 

public class Main_2563_색종이 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());
		int[][] arr = new int[101][101];
		int area = 0;
		
		for (int i=0; i<N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			int x = Integer.parseInt(st.nextToken()); // X 좌표
			int y = Integer.parseInt(st.nextToken()); // Y 좌표
			
			for (int j = 0; j < 10; j++) {
				for (int k = 0; k <10; k++) {
					if (arr[x+j][y+k] == 1) continue;
					arr[x+j][y+k] = 1;
					++area;
				}
			}
		}

		System.out.println(area);
		br.close();
	} // main

}

 

1. 처음에는 조합으로 생각했다.

N개 중 2개를 뽑는 조합을 만들어서 -> 겹치는 부분의 넓이를 구하는 함수를 짜서 -> 빼주었다.
테스트 케이스는 맞았으나 오답인걸로 보아, 2개가 아니라 여러 개가 겹치는 경우를 고려하지 못해서 그런 것 같다.

2. 그러나 N의 크기가 크지 않다.

2차원 배열을 만들어서 이미 넓이에 포함시킨 좌표이면 지나가고
처음 방문하는 좌표이면 넓이++를 하도록 다시 작성하였다.

'코딩테스트 > 백준' 카테고리의 다른 글

[BJ] 16926. 배열 돌리기1  (0) 2021.02.11
[BJ] 2577. 숫자의 개수  (0) 2021.02.09
[BJ] 1158. 요세푸스 문제  (0) 2021.02.09
[BJ] 2164번: 카드 2  (0) 2021.02.08
[BJ] 2493 탑  (0) 2021.02.04
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함