본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 가까운 수

728x90

코드 힌트

  1. 가까운 수를 찾는 문제이기 때문에 abs(절대값)로 판단하기:
    • 예를 들어, |-1| = 1, |1| = 1입니다.
  2. 가까운 숫자가 여러 개 있을 때 낮은 숫자를 반환하기:
    • 예를 들어, n = 20일 때 19와 21이 있으면 19를 반환해야 합니다.
  3. 배열을 오름차순으로 정렬하기:
    • 힌트 2번을 효율적으로 해결하기 위해서 배열을 정렬합니다.

 

 


정답은 더보기 클릭

더보기
import java.util.*;

class Solution {
    public int solution(int[] array, int n) {
        
        // 배열을 오름차순으로 정렬
        Arrays.sort(array);
        
        // 정답을 저장할 변수, 초기값으로 첫 번째 요소를 저장
        int result = array[0];
        
        // 배열 요소와 n의 차이를 저장하는 변수 (절대값으로 저장)
        int diff = Math.abs(array[0] - n);  // 0번째 요소의 차이로 초기화
        
        // 0번째 요소는 이미 변수로 저장했기 때문에 1부터 시작
        for (int i = 1; i < array.length; i++) {
            // 현재 요소와 n의 차이 계산
            int currentDiff = Math.abs(array[i] - n);
            
            // 현재 요소가 n에 더 가까운 경우 diff와 result를 갱신
            if (currentDiff < diff) {
                diff = currentDiff;
                result = array[i];
            }
        }
        
        return result;
    }
}

 

728x90