[for loop] palindrome 판별하기

HOONSSAC·2024년 1월 1일
1

Codeit Algorithm

목록 보기
1/15
post-thumbnail

코드잇 강의를 통해 알고리즘에 대해 공부하며 배운 내용들을 기록한 글입니다.


문제 설명

"토마토""기러기"처럼 거꾸로 읽어도 똑같은 단어를 palindrome이라고 부른다. 문자열 wordpalindrome인지 확인하는 함수 is_palindrome을 만들어라! is_palindromeword가 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를 빼주면 된다.

profile
훈싹의 개발여행

0개의 댓글