
내가 작성한 코드
import java.util.Arrays;
class Solution {
public int solution(int[] array, int n) {
int difference = Integer.MAX_VALUE; // int 최대값
int answer = 0;
for (int i = 0; i < array.length; i++) {
int currentDifference = Math.abs(array[i] - n); // 절대값 차이 계산
if (currentDifference < difference) {
difference = currentDifference; // 새로운 최소 차이 갱신
answer = array[i]; // 현재 값 저장
} else if (currentDifference == difference) {
// 절대값 차이가 같으면 더 작은 값을 선택
if (array[i] < answer) {
answer = array[i];
}
}
}
return answer;
}
}
다른 사람의 코드
import java.util.*;
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
Arrays.sort(array);
for(int i = 1 ; i < array.length ; i++){
if(Math.abs(n-array[0]) > Math.abs(n-array[i])){
array[0] = array[i];
}
}
answer = array[0];
return answer;
}
}
index 0에 최소 차이를 갖는 값을 반복하며 찾아 계속 저장, 반복 종료후, index 0의 value
반환
Math.abs()
절대값을 구해주는 함수
Share article