본문 바로가기
알고리즘/백준

백준 3009 네 번째 점 (JAVA 자바 풀이)

by Renechoi 2022. 12. 4.

백준 3009 네 번째 점 (JAVA 자바 풀이)

 


 

 

📌 문제 

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

 

 

⚔ 입력

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

 

 

📣 출력

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

 

 

 

 


 

 

 

💎 문제 분석

 

 

해시맵을 이용해서 점의 개수를 카운트 하여 등장하지 않은 좌표를 판단한다. 

 

 

 

 

💡 코드 구현

 

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

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

		HashMap<Integer, Integer> xSets = new HashMap<>();
		HashMap<Integer, Integer> ySets = new HashMap<>();

		for (int i = 0; i < 3; i++) {
			StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
			int x = Integer.parseInt(stringTokenizer.nextToken());
			int y = Integer.parseInt(stringTokenizer.nextToken());

			xSets.put(x, xSets.getOrDefault(x, 0) + 1);
			ySets.put(y, ySets.getOrDefault(y, 0) + 1);
		}

		StringBuilder stringBuilder = new StringBuilder();
		for (int x : xSets.keySet()) {
			if (xSets.get(x) == 1) {
				stringBuilder.append(x).append(" ");
			}
		}
		for (int y : ySets.keySet()) {
			if (ySets.get(y) == 1) {
				stringBuilder.append(y).append(" ");
			}
		}
		System.out.println(stringBuilder);
	}
}

 

 

 

 

 

 

 

반응형