Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 버즈2프로
- LeetCode
- 미앤아이
- 토이프로젝트
- 발더스게이트
- 취미
- 게임
- 눈알빠지겠네
- 맛집
- 메탈퍼즐
- 잠실새내
- javascript
- DIY
- 메일우유
- 누룽지소금빵
- 송리단
- 발더스3
- 나쫌
- 서울제빵소
- 노노그램
- 3d퍼즐
- 코테
- 밥먹고
- 알고리즘테스트
- 천등
- 코딩테스트
- 바질토마토뭐시기
- 하스스톤
- 발더스모드
- 뜨아거
Archives
- Today
- Total
.Zzumbong
[leetCode/JS] 9. Palindrome Number 본문
문제 설명
Given an integer x
, return true
if x is a palindrome
, and false
otherwise.
palindrome : An integer is a palindrome when it reads the same forward and backward. For example, 121 is a palindrome while 123 is not.
입출력 예
Example 1:
Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.
Example 2:
Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.
Example 3:
Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
Constraints
-231 <= x <= 231 - 1
내 솔루션
- 앞뒤로 하나씩 비교하기 때문에 중간에 다르면 멈출 수 있다는 장점이 있다.
- 런타임이 빠른편.
var isPalindrome = function(x) {
const str = String(x).split('');
let awnser = true;
for(let i = 0; i < str.length/2; i++) {
if(str[i] !== str[str.length - i - 1]) {
awnser = false;
break;
}
}
return awnser;
};
최고의 솔루션
- String, Array 로 바꾸지 않고 number에서 변환해서 비교한 솔루션이다.
- 런타임은 나보다 느리지만 메모리를 적게 쓴다.
var isPalindrome = function(x) {
var reverse = 0;
var copy = x;
while (copy > 0) {
const digit = copy % 10;
reverse = reverse * 10 + digit;
copy = Math.floor(copy / 10);
}
return reverse == x;
};
감상평
- 숫자 상태에서 뒤집는 방법을 고민했는데 좋은 공부가 되었다.
'coding test > leetCode' 카테고리의 다른 글
[leetCode/JS] 9. Palindrome Number (0) | 2022.11.23 |
---|---|
[lettCode/JS] 36. Valid Sudoku (0) | 2022.11.23 |
[leetCode/JS] 587. Erect the Fence (0) | 2022.11.23 |
[leetCode/JS] 696. Count Binary Substrings (0) | 2022.11.23 |
[leetCode/JS] 1360. Number of Days Between Two Dates (0) | 2022.11.23 |
Comments