콘텐츠로 이동

알고리즘별 연습 문제 세트

실버4~실버2로 넓게 → 감 잡히면 실버1~골드5로 깊게.

이분/파라메트릭

  • 1920, 10816, 1654, 2805, 2110
  • 팁: mid는 (l + r) >>> 1, 조건을 만족하는 최대/최소를 찾는지 명확히.

두 포인터/슬라이딩

  • 3273, 2003, 2018, 2559
  • 팁: 정렬 필요 여부 / 구간합 갱신

맵·셋·문자열

  • 1620, 1764, 14425, 10815, 18870(좌표압축)
  • 팁: HashMap/HashSet 성능, 문자열 파싱

스택/큐

  • 1874, 17298, 18258, 2164
  • 팁: 단조 스택으로 ‘다음 큰 수’/‘이전 큰 수’ 패턴화

DFS/BFS

  • 1260, 11724, 2606, 2667, 2178, 7576, 1697
  • 팁: 방문 리셋, 작은 번호 우선 정렬

그리디

  • 11047, 11399, 1541, 2217, 1744, 2839
  • 팁: 정렬 기준과 반례 직접 만들기

우선순위 큐

  • 1927, 11279, 11286
  • 팁: 비교자 주의((a,b) -> a-b는 오버플로 위험 시 Integer.compare)

최단경로/플로이드

  • 1753, 1916, 11404, 1238
  • 팁: (dist,node) 우큐, 방문 확정 시 continue

유니온/그래프

  • 1717, 1976, 1197, 2252(위상)
  • 팁: 경로압축+랭크, 크루스칼(간선 정렬 → 합치기)

DP

  • 1463, 9095, 2579, 1149, 1932, 1912, 11053, 12865
  • 팁: 점화식 → 테이블 → 초기값 → 순서(순회 방향) 체크

대량 스캐폴드(입력은 나중에)

for n in 1920 10816 1654 2805 2110; do ./scripts/new-prob.sh "$n"; done

즉시 실전 3종 (예시)

1
2
3
PYTHON_BIN=py ./scripts/new-prob.sh 2178 --fetch
PYTHON_BIN=py ./scripts/new-prob.sh 11047 --fetch
PYTHON_BIN=py ./scripts/new-prob.sh 1654 --fetch