반응형
문제
Given an integer x, return true if x is a palindrome, and false otherwise.
예제 1
Input: x = 121 Output: true // Explanation: 121 reads as 121 from left to right and from right to left.
예제2Input: 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.
예제3Input: x = 10 Output: false // Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
제약조건
✅ -231 <= x <= 231 - 1
문제풀이
class Solution {
public boolean isPalindrome(int x) {
// 1. 변수 선언 및 초기화
int remainder;
int originX = x;
int reversedX = 0;
// 2. 팰린드롬 수 판별
while (x > 0) {
reversedX *= 10;
remainder = x % 10;
reversedX += remainder;
x /= 10;
}
// 3. 반환
return originX == reversedX ? true : false;
}
}
- 팰린드롬 수를 구하는 방법은 크게 문자열 연산과 숫자 연산 두 가지가 많이 사용된다.
- 그런데 문자열 연산은 속도도 느리고, 메모리를 많이 잡아먹는다.
- 즉 숫자형 변수를 통해 나머지 연산을 하는 방법이 메모리 면에서도, 속도 면에서도 가장 효율적이라고 할 수 있다.
- 코딩테스트에서 팰린드롬 수를 이용한 문제가 나온다면 이 점을 꼭 기억하도록 하자.
이미지 출처
[김은우의 에듀테크 트렌드 따라잡기] 코딩 교육 사이트 LeetCode가 보여주는 코딩교육의 핵심
[김은우의 에듀테크 트렌드 따라잡기] 코딩 교육 사이트 LeetCode가 보여주는 코딩교육의 핵심
edu.chosun.com
'개발 > 코딩테스트' 카테고리의 다른 글
[LeetCode] 14. Longest Common Prefix #Easy #Java (3) | 2025.02.19 |
---|---|
[LeetCode] 13. Roman to Integer #Easy #Java (1) | 2025.02.18 |
[LeetCode] 1. Two Sum #Easy #Java (3) | 2025.02.17 |
[Baekjoon] 10989. 수 정렬하기 3 #B1 #Java (6) | 2024.11.26 |
[Baekjoon] 1439. 뒤집기 #S5 #Java (48) | 2024.11.25 |