배운 것/Python

[기초 문법] 팰린드롬 확인하기 (for 문, list)

MOR1ATY 2022. 1. 21. 15:00

 

거꾸로 읽어도 똑같은 단어를 '팰린드롬(palindrome)'이라고 한다.

입력한 단어가 팰린드롬인지 아닌지 확인하고 맞는다면 'True', 아니라면 'False'를 출력하는 함수를 생성한다.

 

1
2
3
4
5
6
7
8
def is_palindrome(word):
    for i in range(len(word)//2):
        if word[i] == word[len(word)- 1 - i] :
            i += 1
            if i == len(word)//2:
                return True
        else : 
            return False
cs

 

어떻게든 성공해내려고 노력한 나의 코드.

그런데 이렇게 하면 for문을 쓴 의미가 없어 보인다.

모범 답안은 다음과 같다.

 

 

1
2
3
4
5
6
7
8
9
10
def is_palindrome(word):
    for left in range(len(word) // 2):
        # 한 쌍이라도 일치하지 않으면 바로 False를 리턴하고 함수를 끝냄
        right = len(word) - left - 1
        if word[left] != word[right]:
            return False
 
    # for문에서 나왔다면 모든 쌍이 일치
    return True
 
cs

 

for문에서 나왔다면 모든 쌍이 일치하므로 'True'를 리턴한다는 것이 함수의 포인트인 것 같다.

전혀 생각하지 못했던 방향이다.