코딩쌀롱
[LeetCode_JS] 7. Reverse Integer 본문
문제
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에 곱해주기만 하면 된다. 삼항연산자를 잘 쓰고 싶은데 잘 안써진다. 의식적으로 노력해봐야겠다!!💪🏼
'개발공부' 카테고리의 다른 글
원형 연결 리스트(circular linked list), 이중 연결 리스트(double linked list) (0) | 2021.01.14 |
---|---|
[LeetCode_JS] 83. Remove Duplicates from Sorted List (0) | 2021.01.13 |
[LeetCode_JS] 1. Two Sum (0) | 2021.01.13 |
배열 vs 링크드 리스트(Linked List) (0) | 2021.01.12 |
Comments