공부 기록장

코딩 테스트 문제 유형 파악하기 본문

코딩 테스트/정리 및 복습

코딩 테스트 문제 유형 파악하기

빛나무 2024. 3. 20. 02:57

 

 

시작에 앞서, 알아야 하는 연산량에 따른 수행 속도

1억(100,000,000 = 10^8) → 1초

 

 


 

 

 

1. 입출력 제한 보고 파악하기

 

1) 입력이 100 이하인 경우 (입력값 범위가 매우 작은 경우)

  • 완전 탐색
  • 백트래킹 (?)

 

2) 입력이 10,000 (10^4, 만) 이하인 경우

  • 최대 O( N^2 ) 이내로 끝내야 함 ( 문제따라 O( N^2 log N ) 까지도 허용)
  • N x N 차원 리스트를 모두 순회하는 문제 ↑

 

3) 입력이 1,000,000 (10^6, 백만) 이하인 경우

  • 최대 O( N log N ) 으로 끝내야 함
  • 힙, 우선순위 큐
  • 정렬
  • DP
  • 위상 정렬
  • 다익스트라 알고리즘

 

4) 입력이 100,000,000 (10^8, 억) 이하인 경우

  • 최대 O( N ) 으로 끝내야 함
  • DP
  • 그리디

 

5) 그 이상인 경우

  • 최대 O( log N ) 으로 끝내야 함
  • 이진 탐색
  • 출제 빈도 ↓

 

2. 문제의 특징을 보고 파악하기

 

1) 입력값이 작은 문제

  • 완전 탐색
  • 백트래킹

 

2) 지도가 주어지고 채워진 영역을 찾아야 하는 경우

  • BFS / DFS

 

3) 그래프 그림이 있는 경우

  • 최단 거리 찾기 → 다익스트라, 플로이드 워셜, 밸만 포드
  • 최소 신장 트리 (가장 저렴한 방법으로 모두 연결)  → 크루스칼, 프림
  • 위상 정렬

 

4) 실시간 정렬 수행

  • 우선순위 큐 / 힙

 

5) DP

 

"여러 번 해보고 점화식을 만들 수 있다" or "문제를 보고 유형 파악이 어렵다"

 

① 문제에서 주어진 초기값 적기

② 초기값을 포함한, 계산 가능한 상태값들 적기

③ 현재 알고 있는 값들을 통해, 다음 값들을 구할 수 있는지 판단

④ 혹은 이전 값들을 통해, 현재값을 구할 수 있는지 판단

 

 

6) 문자열이 주어지는 경우

  • 구현
  • 빌트인 사용

 

7) 가장 최적의 선택

≫ 가장 많은 선택, 가장 큰, 가장 작은 ···

  • 그리디 ( 최소 신장 트리 포함 )

 

위의 내용들은 결정적인 것은 아니고 확률적으로 가능성이 높다일 뿐이니 참고만 하자!

 

 

참고 자료

https://hh-bigdata-career.tistory.com/24

 

'코딩 테스트 > 정리 및 복습' 카테고리의 다른 글

딕셔너리 자료형  (1) 2024.03.22
전역 변수와 지역 변수  (1) 2024.03.22
임의의 최대값 최소값  (0) 2024.03.22
완전 탐색과 백트래킹  (0) 2024.03.21
input() vs sys.stdin.readline()  (0) 2024.03.20