코딩쌀롱

[LeetCode_JS] 7. Reverse Integer 본문

개발공부

[LeetCode_JS] 7. Reverse Integer

이브✱ 2021. 1. 13. 16:00

문제

LeetCode 7. Reverse Integer 문제

input: 32비트 정수

output: 32비트의 범위 밖이면 0을 리턴, 범위 내면 각 숫자를 뒤집어서 리턴(양,음은 그대로)

나의 풀이

1. 수를 배열로 만들어 쪼갠다. (toString, split)

2. 순서를 반대로 뒤집는다.

   - 제일 앞 문자가 '-'가 아니면 : 뒤집어서 합치고 숫자로 (reverse, join, parseInt)

   - 제일 앞 문자가 '-'일 경우 : 제일 앞 문자를 제외하고 뒤집어서 합치고 숫자로 (splice, reverse, join, parseInt) 

3. 32비트의 범위 밖이면 0을 반환 아니면 result 반환

 

 

입력값이 음수일 때 '-'를 체크하는 부분이 뭔가 찝찝했는데 json님의 풀이를 보고 답답했던 속이 풀리면서 부끄러웠다ㅎㅎ json에게 허락받고 올리는 코드

var reverse = function(x) {
    const minus = x >= 0 ? 1 : -1;
    const result = (x * minus).toString().split('').reverse().join('') * minus;
    const [min, max] = [2 ** 31 * -1, 2 ** 31 - 1];
    return result > max || result < min ? 0 : result;
};

입력값을 받고 음수인지 양수인지에 따라 minus라는 변수에 값을 담아 마지막 result에 곱해주기만 하면 된다. 삼항연산자를 잘 쓰고 싶은데 잘 안써진다. 의식적으로 노력해봐야겠다!!💪🏼

 

 

Comments