본문 바로가기
프로그래밍/파이썬기초

팔린드롬(palindrome) for반복문이용_파이썬 기초

by 조크리 2022. 8. 31.
반응형

 

 

팔린드롬(palindrome)이란 '토마토', racecar'처럼 거꾸로 읽어도 똑같은 단어를 의미한다.

문자열 word가 팔린드롬인지 확인하는 함수를 만들어보자. 

 

함수는 is_palindrome이라고 하고 for 반복문을 이용해서 코딩을 해볼 것이다. 주의할 점은 append, insert 메소드와 del함수를 사용할 수 없다. 

 


이 문제를 쉽게 이해하자면 문자열 뒤집기 문제라 할 수 있다. 

문자열을 뒤집는 방법은 

 

1) for문

2) reverse()

3) 슬라이싱

 

이렇게 3가지로 볼 수 있다. 

 


 

코드는 아래와 같다. 

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


그리고 아래의 문제들을 대입해보면


print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))


결과는
True
False
True
True
Fals

가 나온다. 

 

for 반복문에서 left라는 변수는 range함수 범위에서 계속 반복을 한다.

그러나 if(만약) 조건문을 만족시키지 못하면 바로 True 로 리턴이 된다.

 

따라서 모든 경우의 수에서 False 아니면 True 값이 리턴이 된다. 

 

return 함수는 return 함수가 실행이 되면 이후 나오는 코드들은 dead code가 된다!

이 부분을 염두해서 필란드롬 for 반복문을 써야한다. 

반응형