팰린드롬(palindrome)이란?
팰린드롬(palindrome)은 앞에서 읽으나 뒤에서부터 읽으나 같은 단어를 말한다 '기러기'나 '오디오'등과 같은 단어를 팰린드롬이라고한다.
위와 같인 팰린드롬 알고리즘을 Python으로 구현을 해보면 아래와 같다.
def is_palindrome(inputWord):
word = inputWord.replace(" ", "")
stringHalf = len(word) // 2
if (stringHalf * 2 - 1) % 2 == 1:
for i in range(int(stringHalf)):
if word[i] == word[len(word)-1-i]:
continue
else:
return False
return True
else:
return False
코드 설명
1. is_palindrome에 문자열이 들어올 경우 inputWord에 저장이된다.
2. inputWord에 공백이 있을 경우 공백을 제거해준다.
3. 공백을 제거한 문자의 길이를 2로 나누어준다. 하지만 그냥 / 로 나누면 float 형으로 나눠지기 때문에 int형으로 나눠지는 //을 사용해서 나눠주었다.
4. 2로 나눈 문자의 길이를 다시 2를 곱하고 1을 빼주어서 2로 나누었을 때 1일 경우(즉, 값이 홀수 일 경우) 팰린드롬 알고리즘이 동작된다.
4-1. 팰린드롬 알고리즘은 우선 문자열 슬라이싱을 사용하여 word[0]과 word[-1]이 서로 같을 경우 계속 반복 시켜서 일치한지 확인한다. 하지만 word[0]광 word[-1]이 서로 다를 경우 False라는 값을 return해준다.
문자열 슬라이싱
우선 'Worldskills'라는 문자열에서 World만 출력되도록 슬라이싱해보자면 아래와 같은 코드를 사용하면 된다.
string = 'Worldskills'
print(string[0:5])
그러면 World라는 문구가 출력된다. 왜냐면 Worldskills라는 문자열의 인덱스는 아래와 같다
W = string[1], o = string[2], r = string[3], l = string[4], d = string[5],
s = string[6], k = string[7],i = string[8],l = string[9],l = string[10],s = string[11]
'Algorithm' 카테고리의 다른 글
[Algorithm] 탐색(선형탐색, 이진탐색)이란? / Python (0) | 2022.01.22 |
---|
댓글