[LeetCode] Find Closest Number to Zero

준규·2022년 9월 10일
0

숫자 배열 nums가 주어질 때 절댓값이 0에 가장 가까운 (즉 절댓값이 가장 작은 숫자) 를 리턴하는 문제이다.

만약 절댓값이 가장 작은 숫자가 여러개라면 가장 큰 숫자를 리턴하면 된다 (-1, 1 이 있을경우 절댓값이 1로 같은데 이런경우 1을 리턴)

Example을 보자

만약 2번 예시처럼 nums가 [2, -1, 1]이라면 절댓값이 1이 가장 작은데 절댓값이 1인 숫자는 -1 , 1 두개이다.

이럴 때는 1을 리턴하면 된다

const findClosestNumber = function(nums) {
    const absNums = nums.map((num) => {
        return Math.abs(num);
    })
    
    return nums.includes(Math.min(...absNums)) ? Math.min(...absNums) : -Math.min(...absNums)
};

먼저 nums 배열을 map을 이용해서 숫자들을 전부 절댓값으로 바꾸어서 absNums라는 새로운 배열에 할당을 해주었다

그 다음 absNums중 가장 작은 값이 만약 nums배열안에 존재한다면 그 최솟값을 그대로 리턴해주면 되고 만약 존재하지 않는다면 nums안에 음수 값이 존재하는 것이었으므로 음수로 리턴해주었다

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글