티스토리 뷰

728x90
반응형

 

코드잇 강의를 듣고 정리한 알고리즘 문제들 입니다.

 

컴퓨터 알고리즘 : 컴퓨터가 어떤 문제를 해결하기 위해서 컴퓨터가 이해할 수 있는 방식으로 정리되어 있는 해결 방법


 

1. 팔린드롬 체크 함수 구현 

- "토마토" 나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 팔린드롬이라고할 때,  

문자열 word가 팔린드롬인지 확인하는 함수를 만들어 해결해보기

 

 조건 

-함수명 : is_palindrome

-매개변수명 : word

-반환값 : 팔린드롬일 시 True , 아닐 시 False


풀이1

-내장함수(join,reversed)사용

def is_palindrome(word):
    reverse_word = "".join(reversed(word))
    if reverse_word != word:
        return False
    return True


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

 

'''
더 알아보기
'''

# reversed() : 역 iterator를 리턴함
reverse_word = reversed(word)
print(reverse_word) # 출력 결과 : <reversed object at 0x7fb88b131e50>


# str.join(iterable) : iterable 의 문자열들을 이어 붙인 문자열을 리턴함
reverse_word = "".join(reversed(word))
print(reverse_word) # 출력 결과 : racecar


#reverse()는 list 타입에서 제공하는 함수 이므로 이것을 사용하려면 리스트로 바꾸어줘야함
def is_palindrome(word):
    lst = list(word)
    lst.reverse()
    lst = ''.join(lst)
    if lst != word:
        return False
    return True

 

풀이2 

-for문 사용

def is_palindrome(word):
    reverse = ""
    for i in word[::-1]:
        reverse += i
    if word != reverse:
        return False
    return True


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

 

'''
더 알아보기
'''

# 변수명[star:stop:step]
# star가 None 이면, 처음부터
# stop이 None 이면, 끝까지
# step이 None 이면, 한칸 간격으로 (step이 음수면 역순으로 간격을 셈)

# ex)
word="hello"
print(word[::2]) # 출력 결과 : hlo
print(word[::-2] # 출력 결과 : olh
728x90
반응형
댓글