백준 문제풀이

3009. 네 번째 점

뮤츠 2022. 10. 10. 01:34

'축에 평행한 직사각형' 이걸로 문제가 너무 쉬워졌다. 여러가지 방법이 있으나,

기왕이면 맵 자료형으로 풀면 쉬울듯하여 그걸로 풀었다. 브론즈 문제를 맵 자료형으로 푸니까 뭔가 닭잡는데 소잡는칼 쓴 기분...

마지막 꼭짓점은 1번씩만 나온 x, y좌표가 나와주면 된다.

 

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int [] x = new int[3];
		int [] y = new int[3];
				
		for (int i=0; i<x.length; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine()," ");
			x[i] = Integer.parseInt(st.nextToken());
			y[i] = Integer.parseInt(st.nextToken());
		}
		
		Map <Integer, Integer> mapX = new HashMap<>();
		Map <Integer, Integer> mapY = new HashMap<>();
				
		for (int i=0; i<x.length; i++) {
			mapX.put(x[i], mapX.getOrDefault(x[i], 0)+1);
		}
		
		for (int i=0; i<x.length; i++) {
			mapY.put(y[i], mapY.getOrDefault(y[i], 0)+1);
		}
		
		int ansX=0; int ansY=0;
		
		for (int num : x) {
			if (mapX.get(num)==1) {
				ansX = num;
				break;
			}
		}
		
		for (int num : y) {
			if (mapY.get(num)==1) {
				ansY = num;
				break;
			}
		}

		System.out.println(ansX + " " + ansY);
	}

}