본문 바로가기
코딩테스트 준비/백준

[백준] 3009번 - 네 번째 점 [Java]

by mwzz6 2024. 12. 5.

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

 

[백준] 3009번 - 네 번째 점 [Java]


1.  아이디어

 

나머지 하나의 점의 좌표는 기존에 주어진 점 3개 중 한번만 등장한 좌표의 조합이 된다는 점을 활용했다.


2. 문제풀이

 

주어진 3개의 x좌표, 3개의 y좌표를 각각 배열에 저장한 후 정렬을 해줬다.

이후 배열의 가운데 원소와 앞 원소를 비교해서 다르면 앞 원소가 한번만 등장한 것이고 같으면 뒷 원소가 한번만 등장한 것이므로 간단하게 해결할 수 있었다.


3. 코드

 

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

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));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;

        int[] xpos = new int[3];
        int[] ypos = new int[3];

        st = new StringTokenizer(br.readLine());
        xpos[0] = Integer.parseInt(st.nextToken());
        ypos[0] = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        xpos[1] = Integer.parseInt(st.nextToken());
        ypos[1] = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        xpos[2] = Integer.parseInt(st.nextToken());
        ypos[2] = Integer.parseInt(st.nextToken());

        Arrays.sort(xpos);
        Arrays.sort(ypos);

        int x4 = xpos[1] == xpos[0] ? xpos[2] : xpos[0];
        int y4 = ypos[1] == ypos[0] ? ypos[2] : ypos[0];

        sb.append(x4).append(" ").append(y4);

        bw.write(sb.toString());
        bw.flush();
    }
}

4. 후기