제목
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
JavaScript 개발자 및 알고리즘 문제 풀이 초보자
난이도: 중간 (기본적인 문자열 조작과 수학적 논리 이해 필요)
핵심 요약
- 문제 정의: 주어진 숫자가 팔린드롬(앞뒤가 같은 수)인지 검증하는 알고리즘 구현
- 구현 방법:
- 문자열 변환: 숫자를 문자열로 변환 후 reverse()
메서드 사용
- 수학적 접근: 숫자를 뒤집는 알고리즘(예: num % 10
과 num = Math.floor(num / 10)
활용)
- 주의 사항: 음수는 팔린드롬이 될 수 없음,
0
은 팔린드롬으로 처리
섹션별 세부 요약
1. 문제 정의 및 예시
- 팔린드롬 수는
121
,12321
등 앞뒤가 같은 수 - 음수(
-121
)는 팔린드롬이 아님 0
은 팔린드롬으로 처리
2. 문자열 기반 구현
- 숫자를 문자열로 변환 후
===
연산자로 뒤집은 문자열과 비교 - 예시 코드:
```javascript
function isPalindrome(num) {
return num.toString() === num.toString().split('').reverse().join('');
}
```
3. 수학적 접근 구현
- 숫자를 뒤집는 알고리즘 사용 (예:
121
→121
) - 예시 코드:
```javascript
function isPalindrome(num) {
if (num < 0) return false;
let reversed = 0;
let original = num;
while (num > 0) {
reversed = reversed * 10 + (num % 10);
num = Math.floor(num / 10);
}
return original === reversed;
}
```
4. 테스트 케이스
isPalindrome(121)
→true
isPalindrome(-121)
→false
isPalindrome(10)
→false
isPalindrome(0)
→true
결론
- 팔린드롬 수 검증 문제는 문자열 변환 또는 수학적 접근으로 쉽게 해결 가능
- 음수 처리와
0
의 경우를 반드시 고려해야 함 - 성능 측면에서 수학적 접근이 더 효율적일 수 있음