본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1507 : 4개의 직사각형 넓이

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1507 4개의 직사각형 넓이 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

네 줄에 걸쳐 직사각형의 왼쪽 위 꼭지점 (x1, y1)와 오른쪽 아래 꼭지점 (x2, y2)가 입력된다. (0<=평면의 범위<100)

출력

네개의 직사각형이 차지하는 넓이를 출력한다.

예시

  • 입력 :
    1 2 3 4
    2 3 5 7
    3 1 6 5
    7 3 8 6
  • 출력 : 26

Solution (풀이)

  • 풀이 : 메모리 11208, 시간 68
public class Answer1 {

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

        int[][] arr = new int[4][4];    // 4개의 직사각형 꼭지점을 저장할 배열

        StringTokenizer st;

        // 4개의 직사각형임으로 4번 반복
        for (int i=0; i<4; i++) {
            st = new StringTokenizer(br.readLine(), " ");
            for (int j=0; j<4; j++) {
                arr[i][j] = Integer.parseInt(st.nextToken());
            }
        }

        // 직사각형의 넓이를 저장할 배열
        int[][] wide = new int[99][99];

        for (int i=0; i<4; i++) {
            // 직사각형 가로 범위만큼 for문 반복
            for (int j=arr[i][0]; j<arr[i][2]; j++) {
                // 직사각형 세로 범위만큼 for문 반복
                for (int k=arr[i][1]; k<arr[i][3]; k++) {
                    wide[j][k] = 1; // =색칠하기
                }
            }
        }

        int result = 0;
        for (int[] i : wide) {
            for (int j : i) {
                if (j==1) {
                    result++;
                }
            }
        }

        System.out.println(result);
        br.close();
    }

}

Ranking(순위)

반응형