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

ungnam·2023년 6월 1일

programmers level0

목록 보기
9/29
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/120890

나의 풀이

function solution(array, n) {
    let result = 0;
    const abs = array.map((v) => Math.abs(v - n));
    const close = abs.filter((v) => v === Math.min(...abs));
    
    result = array.includes(n - close[0]) ? n - close[0] : n + close[0];
    
    return result;
}

array.includes(n - close[0]) ? n - close[0] : n + close[0] -> close가 1개인지 2개인지에 상관없이 동시에 적용됨
close를 굳이 만들지 않고 abssort 메서드를 적용했으면 어땠을까 하는 생각이 든다.

참고할 만한 풀이

function solution(array, n) {
    const abs = array.sort().map((v, i) => Math.abs(n - v));
    return array[abs.indexOf(Math.min(...abs))];
}

sortindexOf의 환상의 콜라보
✔ 가장 가까운 수가 여러 개인 경우에는 indexOf에 의해 더 왼쪽에 있는 요소를 리턴하도록 함 (sort에 의해 왼쪽에 더 작은 수가 위치하기 때문)

profile
꾸준함을 잃지 말자.

0개의 댓글