알고리즘테스트/Programmers
[Lv.0_Java] 가까운 수
코딩거인
2023. 10. 5. 15:13
728x90
class Solution {
public int solution(int[] array, int n) {
int answer = 0;
int min = 2147483647;
for(int i = 0; i < array.length; i++){
int diff = Math.abs(n - array[i]);
if(diff < min){
min = diff;
answer = array[i];
}
if (diff == min && array[i] < answer) {
answer = array[i];
}
}
return answer;
}
}
최소값을 비교해주기 위하여 int의 최대값으로 변수 생성해준뒤 n 에서 array의 i 번째 값을 빼주고 절댓값으로 변경해준다
그 뒤 만약 그 절대값이 최소값보다 작다면 최소값에다가 절대값을 할당하여 주고 answer 에 array[i]를 할당해준다
하지만 동일한 차이가 있을경우를 생각해서 절대값과 최소값이 같고 array[i] 가 answer 보다 작은경우 다시 answer 변수에 할당해 준뒤 return 해주었다.

728x90