[프로그래머스][Java] 가까운 수 (Lv.0)

박현아·2024년 11월 7일
0

programmers-java

목록 보기
29/35

👩‍💻 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120890

🙋‍♀️ 답변

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        
        // HashMap을 사용하여 각 값과 n과의 차이를 저장
        HashMap<Integer, Integer> map = new HashMap<>();
        
        for (int i = 0; i < array.length; i++) {
            map.put(array[i], Math.abs(n - array[i])); // n과의 차이를 계산하여 저장 (절대값)
        }
        
        int minValue = Integer.MAX_VALUE; // 가장 큰 값으로 초기화
        int minKey = 0; // 결과를 담을 변수
        
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            int key = entry.getKey();
            int value = entry.getValue();
            
            if (value < minValue) {
                minValue = value;
                minKey =key;
                
                if (minValue == value && key < minKey) {
                    minKey = key;
                }
            } 
        }
        
        return minKey; // 가장 가까운 값을 반환
    }
}

🤔

쓸 데 없이 HashMap을 쓴 것 같긴 한데,,,,
Map.Entry 쓰는 것 복습했다.

0개의 댓글