데이터분석/python

#9. 팰린드롬

dataminutestone 2025. 10. 28. 22:47

조건)

 

"토마토"나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 '팰린드롬(palindrome)'이라고 부릅니다.

팰린드롬 여부를 확인하는 함수 is_palindrome을 작성하려고 하는데요. is_palindrome은 파라미터 word가 팰린드롬이면 True를 리턴하고 팰린드롬이 아니면 False를 리턴합니다.

예를 들어서 "racecar"과 "토마토"는 거꾸로 읽어도 똑같기 때문에 True가 출력되어야 합니다. 그리고 "hello"는 거꾸로 읽으면 "olleh"가 되기 때문에 False가 나와야 하는 거죠.

 

과정)

 

먼저 문자열을 reverse한다음에 비교하고 출력하면 되지 않을까?

 

def is_palindrome(word): 
	reversed(word) == word 

# 테스트 코드 
print(is_palindrome("racecar")) 
print(is_palindrome("stars")) 
print(is_palindrome("토마토")) 
print(is_palindrome("kayak")) 
print(is_palindrome("hello"))

 

하지만, 다 none값으로 뜸..

 

문제점은

 

 

  1. return 없음 → 결과 안 돌려줌
  2. reversed(word)를 그대로 비교 → 문자열이 아님

return은 print 명령어가 있어서 안해도 될 줄 알았는데 아니었다...! 아직도 멍청함..

reverse 함수를 적용하면 문자열이 아니다.. 반복자(iterator)라고 한다..

 

수정답안)

def is_palindrome(word):
    return ''.join(reversed(word)) == word

 

더 간단한 슬라이싱 처리법)

def is_palindrome(word):
    return word == word[::-1]

 

 

 

피드백)

1. reverse 함수를 사용하면 문자열로 돌아오는 것이 아니다.

2. 문자열로 바꿔주는 join함수를 사용하면 ''를 넣어서 붙어있는 문장형으로 바꿔줘야 한다.

'데이터분석 > python' 카테고리의 다른 글

[Python] 게임회사 데이터분석가 코딩테스트 연습 자료 만들기  (0) 2026.07.12
aliasing  (0) 2025.10.28
dictionary함수  (0) 2025.10.28
#8. 피타고라스 삼조  (1) 2025.10.27
for문 정리  (0) 2025.10.27