[JAVA] 나머지 한 점

NoHae·2025년 2월 6일
0

문제 출처

프로그래밍 강의 > 알고리즘 문제 해설 > 나머지 한 점
https://velog.io/write?id=80c77d74-9ecb-4cc2-a9d2-0fd91edd2f96

문제 설명

직사각형의 3좌표가 있는 2차원 배열이 주어질 때, 직사각형 만드는 데 필요한 나머지 한 점의 좌표를 [x,y] 로 return 하라.

접근 방법

HashMap 2개(각각 x,y) 를 만들어서 중복 체크를 했다.
각 HashMap에 있는 좌표의 키의 value가 2 미만이면 해당 좌표가 나머지 좌표에 해당한다.

import java.util.*;

class Solution {
    public int[] solution(int[][] v) {
        int[] answer = new int[2];
        
        HashMap<Integer,Integer> pointX = new HashMap<>();
        HashMap<Integer,Integer> pointY = new HashMap<>();
        
        for(int[] k : v){
            pointX.put(k[0], pointX.getOrDefault(k[0],0) + 1);
            pointY.put(k[1], pointY.getOrDefault(k[1],0) + 1);
        }
        
        for(int i : pointX.keySet()){
            if(pointX.get(i) < 2){
                answer[0] = i;
                break;
            }
        }
        
        for(int j : pointY.keySet()){
            if(pointY.get(j) < 2){
                answer[1] = j;
                break;
            }
        }

        return answer;
    }
}

알게된 점

다른 풀이들을 보니 소거법 or XOR로 푸는데, 난 해쉬맵을 이용해서 풀었다. 조금은 엉성하게 푼 것 같다.

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글