반응형

연결 리스트 3

[자료구조] 스택을 알아보고 연결 리스트로 스택 ADT 구현하기

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 스택(Strack) 스택은 LIFO(Last In First Out, 후입선출)로 처리됩니다. 잔뜩 쌓아둔 접시를 떠올려보겠습니다. 마지막에 쌓은 접시가 맨 위에 놓일 것입니다. 그리고 가장 마지막에 쌓은 접시를 제일 먼저 꺼내게 됩니다. 스택도 마찬가지로 가장 마지막에 쌓은 데이터를 제일 먼저 꺼냅니다. 파이썬은 스택 자료형을 별도로 제공하지는 않지만, 리스트가 사실상 스택의 모든 연산을 지원합니다. 스택은 다음과 같은 2가지 주요 연산을 지원하는 요소의 컬렉션으로 사용되는 추상 자료형입니다. push(): 요소를 컬렉션에 추가합니다. pop(): 아직 제거되지 않은 가장 최근에 삽입된 요소를 제거합니다..

Python/알고리즘 2021.02.19

[파이썬 알고리즘 인터뷰] 13. 팰린드롬 연결 리스트

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 13. 팰린드롬 연결 리스트 리트코드 234. Palindrome Linked List 문제입니다. 풀이 문제 난이도는 easy 이지만, 연결 리스트에 대한 이해도가 부족하면 풀이 방법을 떠올리기 어렵습니다. 책에서는 두 가지 풀이방법을 제시합니다. 첫 번째는 연결 리스트를 리스트로 바꿔서 펠린드롬을 확인하는 풀이입니다. 두 번째는 연결 리스트의 중앙값을 기준으로 역순 연결 리스트를 만들고 값을 비교하는 풀이입니다. # 1. 리스트 변환 def isPalindrome(self, head): q = collections.deque() node = head whil..

Python/알고리즘 2021.02.15

[자료구조] 연결 리스트를 알아보고 파이썬으로 구현하기

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 연결 리스트(Linked List) 연결 리스트는 데이터 요소의 선형 집합으로, 데이터의 순서가 메모리에 물리적인 순서대로 저장되지 않습니다. 연결 리스트는 배열과 함께 가장 기본이 되는 대표적인 선형 자료구조 중 하나로 다양한 추상 자료형 구현의 기반이 됩니다. 동적으로 새로운 노드를 삽입하거나 삭제하기가 간편하며, 연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리가 쉽다는 장점이 있습니다. 연결 리스트는 배열과는 달리 특정 인덱스에 접근하기 위해서는 전체를 순서대로 읽어야 하므로 상수 시간에 접근할 수 없습니다. 즉 탐색에는 O(n)이 소요됩니다. 반면, 시작 또는 끝 지점에..

Python/알고리즘 2021.02.13
반응형