728x90
문제
https://www.acmicpc.net/problem/2563
풀이
처음에 수학적으로 접근하려고 하지말고 문제를 그대로 받아들이는??? 그런 느낌으로하면 그냥 입력받는 문제라고 생각함 ㅋㅋㅋㅋ
처음에는 뭔가 트릭? 같은게 있을 줄 알고 좌표끼리 더하고 빼고 해야되나 했는데 점점 복잡해지길래 뭐지,,, 했는데 문제에서 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지라는 것을 보고 '그냥 하면 되는 문제'구나 싶었다
그 후로는 너무 쉬웠음 !
문제를 잘 읽자 !!!
걍 도화지를 배열로 보고 가로세로 크기 10 10 인 종이를 붙이면 됨 !
코드
// 2563번 색종이
// https://www.acmicpc.net/problem/2563
package BAEKJOON;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Num2563_색종이 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] map = new int[101][101];
int[][] arr = new int[N][2];
StringTokenizer st;
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
arr[i][0] = Integer.parseInt(st.nextToken());
arr[i][1] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < N; i++) {
int y = arr[i][0];
int x = arr[i][1];
for (int j = y; j < y + 10; j++) {
for (int k = x; k < x + 10; k++) {
map[j][k] = 1;
}
}
}
int count = 0;
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
if (map[i][j] == 1) {
count++;
}
}
}
System.out.println(count);
}
}
728x90