글 작성자: 취업중인 피터팬
728x90

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

 

3009번: 네 번째 점

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

www.acmicpc.net

 

문제 설명

 

사각형의 꼭짓점을 좌표로 보고 3개의 꼭짓점의 위치를 알려주고 나머지 한 꼭짓점의 위치를 출력하는 문제입니다.

 

문제 풀이

 

사각형을 좌표로 본다면 특징이 있습니다. 그 특징은 X축의 같은 값이 총 2개 Y축의 같은 값이 2개씩이라는 것입니다.

 

위에 그림을 보시면 그 사각형 모두 x축 값이 2개 y축 값이 2개로 쌍을 이루어 사각형이 좌표 위에 존재하고 있습니다.

(2,2), (2,4), (5,2), (5,4) -> x 값 : 2,5 / y 값 : 2,4

(1,1), (1,2), (3,1), (3,2) -> x 값 : 1,3 / y 값 : 1,2

 

그러므로 문제에서 3개의 좌표를 알려주면 그중 쌍이 없는 좌표를 찾아 출력해 주면 됩니다.

2개씩 있는 값은 제외하고 하나씩 있는 값을 찾아 그 값을 x, y로 좌표를 설정해 주면 원하는 값을 출력할 수 있습니다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] x = new int[4];
        int[] y = new int[4];

        for(int i=0; i<3; i++){
            x[i] = sc.nextInt();
            y[i] = sc.nextInt();
        }

        if(x[0] == x[1]){
            x[3] = x[2];
        } else if (x[0] == x[2]) {
            x[3] = x[1];
        } else if (x[1] == x[2]) {
            x[3] = x[0];
        }

        if(y[0] == y[1]){
            y[3] = y[2];
        } else if (y[0] == y[2]) {
            y[3] = y[1];
        } else if (y[1] == y[2]) {
            y[3] = y[0];
        }

        System.out.println(x[3]);
        System.out.println(y[3]);
    }
}