Notice
Recent Posts
Recent Comments
Link
코딩 성장기
파이썬 팰린드롬 확인 코드 본문
내가 작성한 파이썬 팰린드롬 코드
def is_palindrome(word):
original = [] # original = list(word) 로 간단히 리스트 생성. '1'개의 문자열만됨!
list_w = []
for character in word:
list_w.append(character)
original.append(character)
for i in range(len(list_w)//2):
tempt = list_w[i]
list_w[i] = list_w[len(list_w) - (i+1)]
list_w[len(list_w) - (i+1)] = tempt
if list_w == original:
return True
else:
return False
모범 답안 파이썬 팰린드롬 코드
def is_palindrome(word):
for left in range(len(word) // 2): #문자열의 인덱스에 접근하여 확인
right = len(word) - left - 1
if left != right:
return False
return True
코드잇 강의중 현재 알고리즘 강의를 듣는중이다.
알고리즘 강의 시작 전 선수과제가 '팰린드롬 확인' 코드 작성이었고, 하루가 넘게 걸렸다.
코드 작성에 문제가 생겼던 이유
1. 문자열을 리스트처럼 접근하여 이용해서 오류가 났음.
문자열은 인덱스를 통해 접근, 출력할 수 있어도 리스트 처럼 자유롭게 변형을 할 수 없다.
(내가 작성한 코드의 for 문에 문자열로 처리를 하다가 계속 오류가 났음)
2. a = list('문자열') 코드를 통해 쉽게 문자열의 요소 하나하나를 element로 하는 리스트 만드는 법을 몰랐음
3. 문자열 비교 도중에 팰린드롬이 아닌것이 판별되면 실행을 멈추도록 코드 작성을 하면 되는데,
모든 문자를 비교하도록 코드를 작성하느라 코드가 지저분해졌다.
4. for 문에 대한 이해도 부족. 무조건 list 화 하여 for 문을 작성해야한다는 잘못된 생각이 있음.
결론
-웬만하면 코드가 간결해지는 방향으로 작성하자.
(너무 FM 대로 하려고 하지 말자)
-for문 관련 공부하기
'알고리즘 공부 > Algorithm in Python' 카테고리의 다른 글
[재귀함수] n번째 삼각수 구하기(1 부터 n 까지의 합) (0) | 2022.03.02 |
---|---|
[재귀함수] 피보나치 수열 (0) | 2022.03.02 |