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

문제 출처

www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

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

www.acmicpc.net

import java.util.Scanner;
public class d023_Q3009 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[][] rec = new int[4][2];
		for(int i = 0; i < 3; i++) {
			rec[i][0] = sc.nextInt();
			rec[i][1] = sc.nextInt();
		}
		
		if(rec[0][0] == rec[1][0]) {
			rec[3][0] = rec[2][0];
		}
		else if(rec[1][0] == rec[2][0]) {
			rec[3][0] = rec[0][0];
		}
		else {
			rec[3][0] = rec[1][0];
		}
		
		if(rec[0][1] == rec[1][1]) {
			rec[3][1] = rec[2][1];
		}
		else if(rec[1][1] == rec[2][1]) {
			rec[3][1] = rec[0][1];
		}
		else {
			rec[3][1] = rec[1][1];
		}
		
		System.out.println(rec[3][0] + " " + rec[3][1]);
		sc.close();
	}

}

 

항상 문제를 너무 쉽게 풀고나면 정말 이게 최선인가? 하는 자신감 없는 생각이 든다.

더 효율적인 코드는 없을까? 싶고...

 

쌍을 이루지 않는 점을 찾으면 그것이 네 번째 점의 좌표가 된다고 생각해서 풀었다.

내가 가장 무서워 지는 코드는 if문이 여러개 나오는 경우랑 반복문이 엄청 많이 나오는 경우다.

전자는 정말 이렇게 많은 경우를 만들어야 하나 스스로 생각이 들고 후자는 시간초과뜰까봐 항상 걱정걱정

myoskin