본문 바로가기
메모장/코딩테스트 준비

코딩테스트 준비 - 팰린드롬

by code2772 2023. 4. 18.

[ 목차 ]

    728x90
    반응형

    팰린드롬(palindrome)은 앞에서부터 읽어도 뒤에서부터 읽어도 동일한 문자열 또는 숫자열을 말합니다. 예를 들면 "level", "radar", "madam" 등이 팰린드롬의 예시입니다. 팰린드롬은 문자열뿐만 아니라 숫자나 기호 등 다양한 형태로 나타날 수 있습니다.

    def solution(n, m):
        count = 0  # 팰린드롬 숫자의 개수를 저장하는 변수
    
        for num in range(n, m + 1):  # n부터 m까지의 범위에서 숫자를 하나씩 확인
            num_str = str(num)  # 숫자를 문자열로 변환하여 각 자리수를 확인하기 위한 변수
            is_palindrome = True  # 현재 숫자가 팰린드롬인지 여부를 저장하는 변수
    
            # 숫자의 각 자리수를 확인하여 팰린드롬인지 여부를 판단
            for i in range(len(num_str) // 2):
                if num_str[i] != num_str[-1 - i]:  # 대칭되는 자리의 숫자가 다르다면
                    is_palindrome = False  # 팰린드롬이 아님
                    break
    
            if is_palindrome:  # 현재 숫자가 팰린드롬이라면
                count += 1  # 카운트를 증가
    
        return count  # 팰린드롬 숫자의 개수를 반환

    코드 리뷰:

    1. 주어진 범위 n부터 m까지의 숫자를 하나씩 확인하며 팰린드롬인지 여부를 판단하는 알고리즘입니다.
    2. 주어진 숫자를 문자열로 변환하여 각 자리수를 확인하고, 대칭되는 자리의 숫자가 다르다면 팰린드롬이 아닌 것으로 판단합니다.
    3. 현재 숫자가 팰린드롬인 경우에만 카운트를 증가시키고, 최종적으로 팰린드롬 숫자의 개수를 반환합니다.
    4. 주어진 코드는 주어진 범위 내의 모든 숫자를 하나씩 확인하여 팰린드롬인지 여부를 판단하는 단순한 알고리즘이므로, 최적화나 개선의 여지가 있을 수 있습니다. 예를 들어, 범위 내에서 팰린드롬 숫자의 패턴을 활용하여 더 효율적으로 판단하는 방법이 있을 수 있습니다.


    반응형