백준 2563번( 자바 )

Flash·2022년 1월 10일
0

BOJ-Algorithm

목록 보기
22/51
post-thumbnail

구현

백준 2563번 구현 문제를 Java로 풀어보았다.
결국 못 풀었다. 정답률이 꽤 높던데 화가 났다. 하지만 내가 멍청한 거니까 어쩔 수 없다. ㅎㅎ


겹치는 넓이는 어떻게 처리해줄 건가?

애초에 겹치는 넓이를 따로 처리할 필요없이 해결하면 된다. 우리가 계산해야할 넓이만을 체크하면 되는 거다. 좌측 하단의 좌표가 입력값으로 주어진다. 그러면 정사각형의 변의 길이가 2라고 하면, x~x+1y~y+1만 점을 찍으며 지나가면 그 점의 개수가 곧 정사각형의 넓이가 되는 것이다.

이처럼 정사각형의 꼭짓점 하나를 입력 받을 때마다 그 정사각형이 커버하는 점의 위치를 찍으며 마지막에 모든 점의 개수를 세면 모든 정사각형이 커버하는 넓이를 계산할 수 있게 된다.

매번 점을 찍는데 만약 이미 점이 찍혀있다면 count해줘서 넓이값에 추가하면 된다.

이를 코드로 작성하면 다음과 같다.

int S = 0;
int n = Integer.parseInt(bfr.readLine());
for(int i=0; i<n; i++){
       stk = new StringTokenizer(bfr.readLine());
       int x = Integer.parseInt(stk.nextToken());
       int y = Integer.parseInt(stk.nextToken());

       for(int a=x; a<x+10; a++){
           for(int b=y; b<y+10; b++){
               if(map[a][b]==1)    continue;
               else    map[a][b] = 1;
               S++;
           }
       }
   }

이 문제는 사실 내 힘으로 푼 문제가 아니니까 다음에 또 만나면 그땐 꼭 내 힘으로 조져야지.
아래는 다른 사람의 풀이를 참고해 작성한 제출한 코드다.

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

public class boj2563 {
    public static void main(String args[]) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer stk;
        int[][] map = new int[100][100];
        int S = 0;
        int n = Integer.parseInt(bfr.readLine());
        for(int i=0; i<n; i++){
            stk = new StringTokenizer(bfr.readLine());
            int x = Integer.parseInt(stk.nextToken());
            int y = Integer.parseInt(stk.nextToken());

            for(int a=x; a<x+10; a++){
                for(int b=y; b<y+10; b++){
                    if(map[a][b]==1)    continue;
                    else    map[a][b] = 1;
                    S++;
                }
            }
        }

        bfw.write(String.valueOf(S));
        bfw.close();
    }
}

의미는 없지만 맞은 코드라는 걸 알려주기 위해 첨부한다.

profile
개발 빼고 다 하는 개발자

0개의 댓글