알고리즘
# [알고리즘] 연결리스트로 구현한 펠린드롬
ForrestPark
2024. 12. 19. 21:02
📌 본 포스팅은 연결리스트로 구현한 펠린드롬 에 대한 내용을 다룹니다.
1.연결리스트 펠린드롬
⓵ 연결리스트를 사용하지 않았을 때
import sys
a = sys.stdin.readline().rstrip()
reverse_a="".join(list(reversed(a)))
print(True if a==reverse_a else False)
⓶ 연결리스트 를 사용하여 펠린드롬인지 확인 할때
def isPalindrome(ln):
from structures import F
F.b("\n펠린드롬 인지 확인합니다")
arr = []
head = ln.head
print(f"head :{head} ")
if not head:
print("아무 것도 없으므로 펠린드롬입니다")
return True
node = head
F.b("LL 순회하며 원소를 리스트에 저장")
while node:
arr.append(node.val)
node = node.next
print(arr,node)
F.b("리스트 양끝 pop 하면서 비교")
while len(arr) > 1:
first = arr.pop(0)
last = arr.pop()
F.y(f"? First {first} == Last {last}")
if first != last:
F.r(f"First {first} != Last {last} 다름")
return False
return True
assert isPalindrome(ln)
🫡 실행결과
✅ [결론]
[⭐️] 알고리즘 공부할때는 파이썬 내장함수도 모조리 직접구현해서 문제를 풀도록 하자!