[코드잇]/ㄴ알고리즘
[알고리즘] 문제1 - 팔린드롬 문제
__hyeon2__
2021. 6. 9. 14:56
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
반응형