거꾸로 읽어도 똑같은 단어를 '팰린드롬(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'를 리턴한다는 것이 함수의 포인트인 것 같다.
전혀 생각하지 못했던 방향이다.
'배운 것 > Python' 카테고리의 다른 글
| [기초 문법] 단어장 만들기 (1) (0) | 2022.02.16 |
|---|---|
| [알고리즘] 새로운 리스트를 생성한 후 원소의 위치(인덱스) 찾기 (0) | 2022.01.25 |
| [기초 문법] a부터 b까지 정수의 합 구하기(for 문) (0) | 2022.01.11 |
| [기초 문법] 리스트 뒤집기(for 문) (0) | 2022.01.07 |
| [기초 문법] 함수 속 변수 정의 (0) | 2022.01.07 |