코드잇 강의를 통해 알고리즘에 대해 공부하며 배운 내용들을 기록한 글입니다.
"토마토"
나 "기러기"
처럼 거꾸로 읽어도 똑같은 단어를 palindrome이라고 부른다. 문자열 word
가 palindrome인지 확인하는 함수 is_palindrome
을 만들어라! is_palindrome
은 word
가 palindrome이면 True
를, palindrome이 아니면 False
를 리턴한다.
def is_palindrome(word):
# 여기에 코드를 작성하세요
# 테스트 코드
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))
True
False
True
True
False
"racecar"
과 "토마토"
는 거꾸로 읽어도 똑같기 때문에 True
가 출력되어야 하고, "hello"
는 거꾸로 읽으면 "olleh"
가 되기 때문에 False
가 나와야 한다.
for
문을 사용해야 한다.append
, insert
메소드와 del
함수를 사용하면 안된다.def is_palindrome(word):
for i in range(len(word)//2): # 0부터 문자열 길이의 절반만큼 반복
if word[i] != word[len(word) - 1 - i]: # i번째 인덱스와 반대쪽 인덱스의 값을 비교
return False
else:
return True
# 테스트 코드
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))
나는 문자열을 반으로 접는다는 생각으로 접근하였다.
예를 들어, "racecar"에서 0번 인덱스와 6번 인덱스를 비교하고, 1번 인덱스와 5번 인덱스를 비교해 나가는 방식이다.
i번 인덱스는 for문 변수 i를,
뒤에서 시작하는 인덱스는 문자열의 길이에서 1을 빼준 다음 변수 i를 빼주면 된다.