반응형
팔린드롬(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 반복문을 써야한다.
반응형
'프로그래밍 > 파이썬기초' 카테고리의 다른 글
파이썬 기초 input()함수 예제 (0) | 2023.09.22 |
---|---|
구글 코랩(colab) 기초 사용법 (0) | 2023.09.21 |
turtle모듈 사용해보기, 시에르핀스키 삼각형 그리기_파이썬 기초 (0) | 2021.04.02 |
소수 판별(emirp소수, 쌍둥이소수, 6촌 소수)_파이썬 기초 (0) | 2021.03.31 |
함수만들기 : sum, total_파이썬 기초 (0) | 2021.03.29 |