숫자 배열 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을 해보니
정답이었다!