문제 이해 -> 풀이법 접근 -> 구현 -> 해결

평균 문제의 제한시간 1~5초 1초에 실행할 수 있는 최대 연산 횟수는 약 1억번

  • N의 범위가 500: 시간 복잡도가 O(N^3) 이하인 알고리즘을 설계
  • N의 범위가 2,000: 시간 복잡도가 O(N^2) 이하인 알고리즘을 설계
  • N의 범위가 100,000: 시간 복잡도가 O(NlogN) 이하인 알고리즘을 설계
  • N의 범위가 10,000,000: 시간 복잡도가 O(N) 이하인 알고리즘을 설계
  • N의 범위가 10,000,000,000: 시간 복잡도가 O(logN) 이하인 알고리즘을 설계

완전탐색 DFS BFS DP 그리디 이분탐색 투포인터 스택 큐

O(n!)

  • 브루트 포스: 완전 탐색 문제에서 모든 가능한 경우를 시도하는 경우.

O(2^n)

  • 브루트 포스: 특정 조합 문제에서 모든 부분 집합을 시도하는 경우.
  • 재귀: 피보나치 수열을 재귀적으로 계산할 때 중복 계산을 하는 경우.

O(n^2)

  • 브루트 포스: 이중 루프를 사용하는 문제.
  • DP: 일부 동적 계획법 문제

O(n log n)

  • 그리디: 동전 문제

O(n)

  • 선형 탐색: 배열이나 리스트에서 순차적으로 탐색.
  • DFS (깊이 우선 탐색): 그래프나 트리 탐색 시.
  • BFS (너비 우선 탐색): 그래프나 트리 탐색 시.

O(log n)

  • 이분 탐색: 정렬된 배열에서 이분 탐색을 할 때.
  • 이진 트리: 이진 탐색 트리에서 삽입, 삭제, 검색 시 평균 시간복잡도.

O(1)

  • 해시 함수: 해시 테이블에서 삽입, 삭제, 검색 시 평균 시간복잡도.
  • 상수 연산: 간단한 수학적 연산, 변수 접근.
  • 인덱스 접근: 배열의 특정 인덱스에 접근할 때.

Updated: