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

Yunki Kim·2022년 12월 30일
1

프로그래머스

목록 보기
55/101

문제


링크


코드

import java.util.Arrays;

class Solution {
    public int solution(int[] array, int n) {
        Arrays.sort(array);
        for (int i = 0; i < array.length; i++) {
            if (array[i] >= n) {
                int leftValue = n - array[(i - 1)];
                int rightValue = array[i] - n;
                return leftValue <= rightValue ? array[(i - 1)] : array[i];
            }
        }
        return array[array.length - 1];
    }
}

리뷰

n보다 크거나 같은 배열의 인덱스이거나 그 전의 인덱스값이 문제가 요구하는 조건이다.

오름차순 정렬을 한 배열이라고 가정한다면 가장 가까운 수가 여러개
즉, 조건을 만족하는 인덱스나 그 전의 인덱스가 같은 절대값을 가지는 경우에는 작은 수가 문제의 정답이다.

그리고 배열을 다 돌아도 n값보다 크거나 같은 수를 만나지 못한다면 배열의 마지막 인덱스값이 n에 가장 가까운 수이다.

Math.abs()를 사용하는 대신 그냥 계산을 통해서 비교하도록 하였다.

0개의 댓글