정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int diff = 0;
int min = Integer.MAX_VALUE;
for(int i = 0; i < array.length; i++) {
diff = Math.abs(n - array[i]);
if(diff < min) {
min = diff;
answer = array[i];
} else if(diff == min && array[i] < answer) {
answer = array[i];
}
}
return answer;
}
}
int answer = 0; : 반환할 값을 저장하는 변수. 배열에서 n과 가장 가까운 값을 저장int diff = 0; : 배열의 각 요소와 n사이의 차이를 저장하는 변수int min = Integer.MAX_VALUE; : 최소 차이를 저장하는 변수. Integer형의 최대값(2,147,483,647)으로 초기화. 이 값은 초기에는 배열의 첫 번째 요소와 n 사이의 차이와 비교된다.diff = Math.abs(n - array[i]) : 현재 배열 요소와 n 사이의 차이를 계산. Math.abs() 메서드는 절댓값을 반환한다.if(diff < min) : 최소 차이를 찾으면 diff로 업데이트한다.else if(diff == min && array[i] < answer) : 더 작은 값을 찾았으므로 answer를 현재 배열 요소로 업데이트한다.answer = array[i];: 현재 배열 요소를 answer에 저장한다.