본문 바로가기

Programming/Python3

[Python] 파이썬 collections.deque 모듈 사용하기 deque(데크)란? deque는 앞과 뒤에서 데이터를 처리할 수 있는 양방향 자료형이다. 양방향이기 때문에 스택(Stack)처럼 써도 되고 큐(Queue)처럼 써도 된다. collections.deque 모듈은 deque 자료형을 생성하는 모듈이다. from collections import deque deq = deque() 리스트(list)와 비슷한 데크(deque) 데크(deque)의 사용법은 리스트(list)와 거의 흡사하다. collections.deque의 메소드들 중 리스트(list)와 차이를 보이는 메소드 위주로 살펴보겠다. 데크(deque)에 요소추가 : append(item) list.append(item)과 마찬가지로 item을 dequeue의 오른쪽(마지막)에 추가해준다. deq .. 2021. 8. 18.
[Python] input()과 sys.stdin.readline()의 차이 버퍼(buffer) 표준 입출력 함수를 사용할 때에는 버퍼(buffer)라는 임시 메모리 공간을 사용하게 된다. input() input()은 사용자로부터 한 줄을 입력 받은 뒤 입력된 줄(line)을 문자열로 변환하여 처리한다. 이때 입력 마지막의 줄바꿈(\n)은 포함하지 않는다. 사용자가 키를 하나씩 누르면 이에 대응하는 데이터가 버퍼에 보관된다. 개행문자(\n)가 입력되면 버퍼의 입력이 종료된 것으로 간주한다. input() 호출 시 Prompt 문자열을 화면에 출력해 사용자의 입력을 기다린다. 대량의 입력을 받는 경우 입력을 받고 다시 prompt 창을 띄우고의 과정을 반복하므로 오류 발생 가능성이 증가한다. 더 이상 받을 입력이 없을 때 수행될 경우 EOF(End of File) error를 일.. 2021. 8. 17.
[Python] Heapq 모듈 사용하기 Heapq 모듈이란? 파이썬 heapq 모듈은 우선순위 큐 알고리즘이라고도 하는 힙(heap) 큐 알고리즘의 구현을 제공한다. 기본적으로 Min-priority-queue 구조를 가지고 있다. heapq는 내장 모듈로 별도의 설치 작업 없이 바로 사용할 수 있다. import heapq 힙(heap)에 요소추가 : heappush(heap, item) heapq 모듈은 리스트를 최소 힙처럼 다룰 수 있도록 하기 때문에, 빈 리스트를 생성한 후 heapq의 함수를 호출할 때마다 리스트를 인자에 넘겨야 한다. 힙(배열)에 요소(item)을 추가 import heapq heap = [] heapq.heappush(heap, 50) heapq.heappush(heap, 10) heapq.heappush(heap.. 2021. 8. 17.