프로그래머스 세팅 문제

Updated:

Java

프로그래머스 세팅 문제

문제

접근 방법

라인, 카카오 코딩테스트 전 미리 주어진 연습 문제를 풀었는데, Map으로 해결하였다.

대부분의 코딩 테스트에 쓰이는 Map의 메서드들을 깔끔하게 사용하여 정리하였다.

코드

import java.util.*;
import java.util.Map.Entry;

public class Solution {
	public static int[] solution(int[][] v) {
        int[] answer = new int[2];
        
        Map<Integer, Integer> x_map = new HashMap<>();
        Map<Integer, Integer> y_map = new HashMap<>();
        
        for(int i = 0; i < v.length; i++) {
        	int[] curV = v[i];
        	x_map.put(curV[0], x_map.getOrDefault(curV[0], 0) + 1);   // 찾는 키가 존재한다면 찾는 키의 값을 반환하고, 없다면 0
        	y_map.put(curV[1], y_map.getOrDefault(curV[1], 0) + 1);
        }

        List<Entry<Integer, Integer>> x_list = new ArrayList<>(x_map.entrySet()); // Map을 List로 변환
        List<Entry<Integer, Integer>> y_list = new ArrayList<>(y_map.entrySet());
        
        for(int i = 0; i < 2; i++) {
        	if(x_list.get(i).getValue() == 1) // 값이 1인 key == 아직 없는 좌표
        		answer[0] = x_list.get(i).getKey();

        	if(y_list.get(i).getValue() == 1)
        		answer[1] = y_list.get(i).getKey();

        }
        
        return answer;
    }
}

총평

후기

개선할 점