Pop 2

[코테] 코딩 테스트 합격자 되기 2주차 - 스택

스택의 어원은 '쌓는다' 입니다. 어원에서 짐작할 수 있듯이, 먼저 입력한 데이터를 제일 나중에 꺼낼 수 있는 자료구조입니다. 이렇게 먼저 들어간 것이 마지막에 나오는 규칙을 후입선출 혹인 LIFO(Last IN First Out)이라고 합니다. 이 때, 스택에 삽입하는 연산을 push, 꺼내는 연산을 pop 이라고 합니다. 📖 스택의 동작 원리 이해하기 빈 통(빈 스택)에 사탕을 넣는다고 하면, 아래와 같이 나타낼 수 있습니다. 📖 스택의 ADT ADT는 우리말로 추상 자료형(abstract data type)인데요, 추상 자료형이란 인터페이스만 있고 실제로 구현은 되지 않은 자료형입니다. 일종의 자료형의 설계도라고 생각하면 됩니다. 그렇다면 스택은 어떤 정의가 필요한 자료구조일까요? 우선 스택에는 ..

[백준/알고리즘/python/java] 2164번 - 카드2

맨 처음에 시간초과가 났던 코드였다. 심지어 PyPy3로도 시간초과가 났었다. 로직은 단순한데, 시간초과가 났다면 다른 라이브러리의 힘을 빌려야 하는 순간이다. 기존 리스트로 카드 세트를 생성하고 처음엔 remove나 del 함수를 사용했지만, 단순히 pop 함수를 사용해도 되는데, 파이썬의 list는 중간에 있는 요소를 pop할 때 시간복잡도가 O(n)이지만, collections.deque는 시간복잡도가 O(1) 라고 한다. 먼저 맨 처음에 작성했던 코드는 아래와 같다. import sys input = sys.stdin.readline n = int(input()) card_list = [] for i in range(n, 0, -1): card_list.append(i) while(len(card..

반응형