반복되는 질문 탐색
문제가 계속 묻는 것이 존재 여부인지, 최소값인지, 구간 합인지에 따라 구조가 바뀐다.
같은 데이터를 다뤄도 많이 하는 일이 조회인지, 삽입인지, 정렬인지에 따라 풀이가 달라진다. 문제 문장에서 연산 빈도를 먼저 세어야 한다.
문제가 계속 묻는 것이 존재 여부인지, 최소값인지, 구간 합인지에 따라 구조가 바뀐다.
O(1), O(log n), O(n)을 연산 횟수와 곱해 시간 제한 안에 드는지 계산한다.
정렬 유지가 필요한지, 원래 순서가 필요한지, 중복을 세야 하는지에 따라 구조를 결정한다.
// many membership queries -> unordered_set
// repeated min extraction -> priority_queue
// range sum updates -> Fenwick or segment tree