문제 설명
정수 배열 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 |