가까운 수 Lv. 0

박영준·2023년 6월 5일
0

코딩테스트

목록 보기
222/300
class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        return answer;
    }
}

해결법

방법 1

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;
    }
}
  • array[0]
    • index 0 에 최소 차이를 갖는 값을 for문을 돌면서 계속 저장한다

방법 2

import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
    
        Arrays.sort(array);

        int min = Math.abs(array[0]-n);
        int idx = 0;
        
        for (int i = 1; i < array.length; i++)
            if (Math.abs(array[i] - n) < min) {
                min = Math.abs(array[i] - n);
                idx = i;
            }

        return array[idx];
    }
}

가까운 수 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글