본문 바로가기
PS/Baekjoon

[Baekjoon] 3009 - 네 번째 점

by 서현 SEOHYEON 2023. 2. 2.

📝 문제

 

 

🔑 풀이 과정

직사각형의 좌표를 그림으로 표현하면 다음과 같다.

x좌표가 같은 점이 2개-2개씩, y좌표가 같은 점이 2개-2개씩으로 나눠진다.

 

우리는 세 점의 좌표를 받고, 네 번째 점을 찾으면 된다.

① 첫 번째 점과 두 번째 점의 x좌표가 같고, 세 번째 점과 네 번째 점의 x좌표가 같은 경우

② 첫 번째 점과 세 번째 점의 x좌표가 같고, 두 번째 점과 네 번째 점의 x좌표가 같은 경우

③ 두 번째 점과 세 번째 점의 x좌표가 같고, 첫 번째 점과 네 번째 점의 x좌표가 같은 경우

총 3가지 경우가 있다.(y좌표도 동일)

 

 

 

 

🔓 답안

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

public class Main {

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

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

        //입력
        for(int i = 0; i < 3; i++){
            st = new StringTokenizer(br.readLine());
            x[i] = Integer.parseInt(st.nextToken());
            y[i] = Integer.parseInt(st.nextToken());
        }

        //x좌표 구하기
        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];

        //y좌표 구하기
        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];

        bw.write(x[3] + " " + y[3] + "\n");
        bw.flush();
        bw.close();
    }

}

 

 

🖤 알고리즘 분류

- 구현

- 기하학

댓글