자바/백준

[백준 3009] 네 번째 점 - 자바(Java)

Jakorithm 2024. 1. 1. 00:15
728x90

문제

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

 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net

 

 

코드

첫 번째 줄부터 세 점의 좌표가 한 줄에 하나씩 주어진다. 이때 축에 평행한 직사각형을 만들기 위해 필요한 네 번째 점을 찾아 출력하는 문제다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int[] xArr = new int[3]; // x 좌표를 저장할 배열
        int[] yArr = new int[3]; // y 좌표를 저장할 배열

        // 세 점 입력 받아 배열에 저장
        for (int i = 0; i < 3; i++) {
            st = new StringTokenizer(br.readLine());
            xArr[i] = Integer.parseInt(st.nextToken());
            yArr[i] = Integer.parseInt(st.nextToken());
        }

        int x = 0;
        int y = 0;

        // x의 네 번째 좌표 구하기
        if (xArr[0] == xArr[1]) {
            x = xArr[2];
        } else if (xArr[0] == xArr[2]) {
            x = xArr[1];
        } else {
            x = xArr[0];
        }

        // y의 네 번째 좌표 구하기
        if (yArr[0] == yArr[1]) {
            y = yArr[2];
        } else if (yArr[0] == yArr[2]) {
            y = yArr[1];
        } else {
            y = yArr[0];
        }

        System.out.println(x + " " + y);
    }
}
  • 직사각형이 되기 위해서는 x 좌표와 y 좌표가 2번씩 등장해야 한다는 점을 이용해야 한다.
  • 입력받은 x와 y좌표들 중 한 번만 등장한 숫자가 네 번째 점의 좌표이다.
728x90