AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

제목

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

JavaScript 개발자 및 알고리즘 문제 풀이 초보자

난이도: 중간 (기본적인 문자열 조작과 수학적 논리 이해 필요)

핵심 요약

  • 문제 정의: 주어진 숫자가 팔린드롬(앞뒤가 같은 수)인지 검증하는 알고리즘 구현
  • 구현 방법:

- 문자열 변환: 숫자를 문자열로 변환 후 reverse() 메서드 사용

- 수학적 접근: 숫자를 뒤집는 알고리즘(예: num % 10num = Math.floor(num / 10) 활용)

  • 주의 사항: 음수는 팔린드롬이 될 수 없음, 0은 팔린드롬으로 처리

섹션별 세부 요약

1. 문제 정의 및 예시

  • 팔린드롬 수는 121, 12321 등 앞뒤가 같은 수
  • 음수(-121)는 팔린드롬이 아님
  • 0은 팔린드롬으로 처리

2. 문자열 기반 구현

  • 숫자를 문자열로 변환 후 === 연산자로 뒤집은 문자열과 비교
  • 예시 코드:

```javascript

function isPalindrome(num) {

return num.toString() === num.toString().split('').reverse().join('');

}

```

3. 수학적 접근 구현

  • 숫자를 뒤집는 알고리즘 사용 (예: 121121)
  • 예시 코드:

```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의 경우를 반드시 고려해야 함
  • 성능 측면에서 수학적 접근이 더 효율적일 수 있음