-
숫자 뒤집기Algorithm | Data structure/문제풀이 2022. 11. 1. 19:08
reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예를 들어,
x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321내 답안
const reverse = x => { 여기에 코드를 작성해주세요. if (x >= 0) { return Number(String(x).split('').reverse().join('')); } else { const reverseX = String(x).split('').reverse(); reverseX.pop(); reverseX.unshift('-') return Number(reverseX.join('')) } }
동기의 신박한 답안
const reverse = x => { return parseInt(String(x).split('').reverse().join('')) * Math.sign(x); }
To Learn
처음에 x가 음수일 때를 가정하지 않고 답안을 작성했다. 그런데 음수가 들어가면 return이 NaN이었다.
양수일때의 식을 -를 넣으면 -가 뒤에 들어가서 NaN이 되는 것이다.
그래서 -를 빼서 배열 앞으로 넣어주고 join하면 될 것으로 생각해서 위와 같이 답안을 작성했다.
그런데 메소드를 활용한 동기의 답안은 한 줄이었다.
부호를 나는 if로 경우를 나누었지만, 동기는 그냥 숫자로 바꿔서 부호를 곱해주는 방법을 택했다.
Math.sign(x) x : 숫자, number가 아닐 경우 자동으로 변환이 된다. 즉, x가 "-10"의 문자열이어도 반환한다. return은 x > 0 => 1 x < 0 => -1 x = +0 => 0 x = -0 => -0 이외의 경우 NaN
'Algorithm | Data structure > 문제풀이' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (0) 2023.03.17 [프로그래머스] 폰켓몬 (0) 2023.01.17 [객체, 배열] 배열 내 반복 요소 개수 찾기 (0) 2022.11.08 [객체, 배열] 로마자에서 숫자로 바꾸기(수열) (0) 2022.11.08 배열 요소의 조합을 찾는 문제 (0) 2022.10.31