본문 바로가기
코딩테스트 연습

가까운 수

by 신재은👩🏼‍💻 2024. 4. 20.

문제 설명
정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

제한사항
1 ≤ array의 길이 ≤ 100
1 ≤ array의 원소 ≤ 100
1 ≤ n ≤ 100
가장 가까운 수가 여러 개일 경우 더 작은 수를 return 합니다.


입출력 예
array n result
[3, 10, 28] 20 28
[10, 11, 12] 13 12


import java.util.Arrays;

class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        int minDiff = Arrays.stream(array)
                        .map(i -> Math.abs(n - i))
                        .min()
                        .orElse(Integer.MAX_VALUE);
        
        answer = Arrays.stream(array)
            .filter(i -> Math.abs(n - i) == minDiff)
            .min()
            .orElse(-1);
        
        return answer;
    }
}


이번에는 내 접근 방식이 나쁘지 않은 것 같다(이해하기 쉬워서.).

점점 다른 사람들과 코드 비교하는 것이 쉽지 않다.

전에는 장단점이 확연히 보였다면 지금은 판단하기 애매하다.

'코딩테스트 연습' 카테고리의 다른 글

배열의 길이를 2의 거듭제곱으로 만들기  (0) 2024.04.20
한 번만 등장한 문자  (0) 2024.04.20
k의 개수  (0) 2024.04.20
A로 B 만들기  (0) 2024.04.20
숨어있는 숫자의 덧셈 (2)  (0) 2024.04.20