프로그래머스 세팅 문제
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;
}
}