본문 바로가기
Programming/Algorithm

[백준] 3009번 : 네번째 점 (Java)

by 안녕주 2021. 9. 1.

문제

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

입력

세 점의 좌표가 한 줄에 하나씩 주어진다. 좌표는 1보다 크거나 같고, 1000보다 작거나 같은 정수이다.

출력

직사각형의 네 번째 점의 좌표를 출력한다.


코드

package Bronze;

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

public class Main3009 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
		StringTokenizer st = new StringTokenizer(br.readLine()," ");       
        int[] arr1 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
		
        st = new StringTokenizer(br.readLine()," ");
		int[] arr2 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
		
        st = new StringTokenizer(br.readLine()," ");
		int[] arr3 = { Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()) };
        
        int x = 0,y = 0;

        if(arr1[0] == arr2[0]){
            x = arr3[0];
        }
        else if (arr1[0] == arr3[0]){
            x = arr2[0];
        }
        else if (arr2[0] == arr3[0]){
            x = arr1[0];
        }

        if(arr1[1] == arr2[1]){
            y = arr3[1];
        }
        else if (arr1[1] == arr3[1]){
            y = arr2[1];
        }
        else if (arr2[1] == arr3[1]){
            y = arr1[1];
        }

        System.out.println(x + " " + y);
        
    }
}

풀이

알고리즘은 크게 어렵지 않다. 하나하나 비교를 했다.
한번 입력을 받을 때 마다
st = new StringTokenizer(br.readLine()," ");
를 해줘야한다

<구글링>
다른 방법으로는 br.readLine().split(" "); 을 통해 문자열 배열로 하여 equals 메소드로 비교를 하는 방법도 있다.

댓글