최재영의 개발 일지
GitHubLinkedIn

Python

[PS] 덱(Deque)

deque는 양쪽 끝에서 O(1)으로 삽입/삭제가 가능한 자료구조이다. 내부적으로 이중 연결 리스트 기반으로 구현되어 있다. 반면에 인덱스로 접근하면 O(n)이다. 그래서 인덱스 접근이 잦다면 list가 더 유리하다. 주요 메서드

[PS] 무한대

양의 무한대: `float('inf') 음의 무한대: `float('-inf')

[PS] 연산자

1. 산술 연산자 # +, -, *, /, //, %, ** 10 // 3 # 3 -10 // 3 # -4 10 % 3 # 1 -10 % 3 # 2 2 ** 10 # 1024 자주 쓰는 패턴 # 1) 중간값 (파이썬은 bigint라 오버플로우 걱정 없음) mid = (left + right) // 2 # 2) 올림 나눗셈 (m

[PS] 큐(Queue)

collections.deque를 큐로 사용한다. deque는 양 끝에 삽입/삭제가 O(1)이기 때문이다. from collections import deque queue = deque() # 삽입 queue.append(1) queue.append(2) queue.append(3) # deque([1, 2, 3]) # 꺼내기 val = queue.p

[PS] 스택(Stack)

list를 스택으로 사용할 수 있다. stack = [] # push stack.append(1) stack.append(2) stack.append(3) # stack = [1, 2, 3] # pop top = stack.pop() # top = 3, stack = [1, 2] # top top = stack[-1] # top = 2 # empty

[PS] 입력(input)

기본 input()은 항상 문자열을 반환한다. s = input() n = int(input()) x = float(input()) 빠른 입력 sys.stdin.readline() input()은 느리다. sys.stdin.readline()을 사용하면 입력을 빠르게 받을 수 있다. import sys input = sys.stdin.readline 주의:

[PS] 출력(print)

기본 출력 a, b = 1, 2 print(a, b, sep=',', end='') # "1,2" arr = [1, 2, 3, 4, 5] print(arr) # [1, 2, 3, 4, 5] print(*arr) # 언패킹: "1 2 3 4 5" 빠른 출력 sys.stdout.write()