다른 사람의 풀이
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
Arrays.sort(array);
int min = Math.abs(array[0]-n);
int minIdx = 0;
for(int i=1; i<array.length; i++)
if(Math.abs(array[i]-n) < min) {
min = Math.abs(array[i]-n);
minIdx = i;
}
return array[minIdx];
}
}
▶ 가장 가까운 수가 여러 개일 경우 더 작은 수를 return한다.
▶ 만약 array={ 18, 20, 21 }이고, n=19인 경우 18과 20 모두 차이는 1로써 똑같다.
▶ 그러나 문제의 조건에 따라 가장 가까운수가 여러 개일 경우 작은 수를 반환해야 하므로
▶ 18이 정답이 된다.
'프로그래머스(자바) > LV.0(자바)' 카테고리의 다른 글
7의 개수★ →"k의 개수"문제와 유사 (0) | 2022.11.26 |
---|---|
특이한 정렬★★★ sorted(), compareTo(), compare(A, B) (0) | 2022.11.26 |
팩토리얼 → ★축약 연산자를 이용한 팩토리얼 (0) | 2022.11.25 |
2차원으로 만들기→이중for문★, %연산자★ 2차원배열 (0) | 2022.11.25 |
k의 개수 - IntStream을 Stream<String>으로 변환, 문자열 슬라이싱★★ (0) | 2022.11.25 |