가까운 수

반즈·2023년 12월 21일

프로그래머스 입문

목록 보기
50/51

문제 설명

정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.

입출력 예


자바

나의 풀이

class Solution {
    public int solution(int[] array, int n) {
        int answer = 0;
        int near = array[0];
        for(int i = 1; i < array.length; i++){
            if(Math.abs(n - near) != Math.abs(n - array[i])){
                if(Math.abs(n - near) > Math.abs(n - array[i])){
                    near = array[i];
                }
            } else {
                near = near > array[i] ? array[i] : near;
            }
        }
        answer = near;
        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;
    }
}

자바스크립트

나의 풀이

function solution(array, n) {
    var answer = 0;
    array.sort((a, b) => a - b);
    for(let 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;
}

참고 풀이 (깔끔)

function solution(array2, n) {
    var array = [...array2].sort()
    var cal = array.map(v => Math.abs(v-n)) //요소에서 n뺀것을 절대값으로 표시
    var cal2 = Math.min(...cal) //제일 가까운수의 값
    var cal3 = cal.indexOf(cal2) //제일 가까운수의 인덱스

    return array[cal3];
}
profile
나를 채우다

0개의 댓글