BOJ-2563

Lee Do Kyung·2025년 1월 22일

Boj

목록 보기
12/12

문제

알고리즘:

사칙연산

풀이:

처음에 만들어두고 빼는 식으로 생각을 했었는데 풀다보니 이상한것 같아 배열로 생각하니 쉬워졌다.
이차원배열로 생각한다음 10*10의 고정된 크기를 돌면서 색칠된 부분을 true로 바꿔주고 sum을
하나씩 증가시켰다. 이차원배열의 경우 boolean으로 만들어서 풀어줬다.

코드

package BOJ;

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

public class BOJ_2563 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        boolean arr[][] = new boolean[101][101];

        int sum = 0;
        int n = Integer.parseInt(br.readLine());

        for(int tc=0; tc<n; tc++) {
            st = new StringTokenizer(br.readLine());
            int x = Integer.parseInt(st.nextToken());
            int y = Integer.parseInt(st.nextToken());

            for(int i=0; i<10; i++) {
                for(int j=0; j<10; j++) {
                    if(!arr[x+j][y+i]) {
                        arr[x+j][y+i] = true;
                        sum += 1;
                    }
                }
            }
        }
        System.out.println(sum);
    }
}

후일담

생각을 너무 정적으로 했던것 같다. 좀더 유동적으로 푸는 여러 방법을 생각해봐야겠다는 생각이 들었다. 문제를 풀다가 이상한데 라는 생각이 들지않게 설계를 미리 잘하고 들어가야겠다고 다시 다짐하게 되었다. (생각보다 잘안되는것 같지만 열심히 해보는중이다..)

문제 출처:

https://www.acmicpc.net/problem/2563

깃허브 링크:

https://github.com/dbzoseh2rl

profile
유능한 Backend 개발자가 되기위해 열심히 하겠습니다!

0개의 댓글