새로 생길 때마다 업데이트중
1. input 시간초과
a = input()
#-------대신 readline 사용---------
import sys
a = int(sys.stdin.readline())
2. sort 시간초과
#내림차순 정렬 (reverse true)
l.sort(reverse=True)
#-----대신 push, pop마다 자동 오름차순 정렬해주는 heapq 사용-----
import heapq
heapq.heappush(l, num)
heapq.heappop(l)
#기존 list를 heapq로 변경
heapq.heapify(l)
3. deque 사용: popleft이 list의 pop(0)보다 적은 시간 소모한다.
l = [1,2,3]
l.pop(0) #list.pop(index)
l.pop() #list.pop() == list.pop(-1)
#-------대신 deque 사용------
from collections import deque
q = deque()
q.append(1)
q.append('abc') #다른 type도 append 가능
q.popleft() #pop leftmost element
q.pop() #pop rightmost element
list, deque 모두 pop 실행 시 제거한 원소를 return한다.
4. 이걸 다 계산해서 찾아야하나? 하는 문제는 웬만하면 최소한의 계산으로 간소화시킬 규칙/알고리즘이 있다. (그게 효율성 문제긴 하지만..!)
'코딩놀이: python C C++' 카테고리의 다른 글
[C, 프로그래머스] lv1. 없는 숫자 더하기, C 배열 (0) | 2022.06.23 |
---|---|
[python, 프로그래머스] lv3: 추석 트래픽 (datetime) (0) | 2022.06.15 |
프로그래머스 lv2: 오픈채팅방(dictionary, in) (0) | 2022.06.14 |
프로그래머스 lv2: 스택/큐 주식가격, bool list 만들기 (0) | 2022.05.21 |
프로그래머스 LV2: 더맵게 python, heapq 사용법 (0) | 2022.05.21 |