david's daily developer note

[HR] 알고리즘 문제 유형의 빈도 본문

[Develop] HR

[HR] 알고리즘 문제 유형의 빈도

mouse-david 2022. 9. 27. 22:05
728x90

이번 글에서 코딩테스트에 출되는 알고리즘 유형에 따른 출제 빈도 정리한다.
해당 자료는 국내에서 문제풀 규모가 가장 큰 백준 사이트와 관련된 사이트에서 문제 유형, 난이도 정보를 기반으로 작성하였다. (https://solved.ac/

출제 빈도가 높은 상위 1-10개의 문제 유형

문제 유형 출제 빈도 (%) 출제 수
#수학 math 9.59 4,365
#구현 implementation 8.07 3,673
#다이나믹 프로그래밍 dp 6.12 2,785
#그래프 이론 graphs 5.70 2,595
#자료 구조 data_structures 5.70 2,594
#문자열 string 3.68 1,675
#그리디 알고리즘 greedy 3.44 1,566
#브루트포스 알고리즘 bruteforcing 3.24 1,475
#그래프 탐색 graph_traversal 3.16 1,438
#정렬 sorting 2.66 1,213

단순 사칙 연산을 포함한 #수학 유형의 문제가 가장 많았고,
사칙연산, 조건 등을 분석하고 단순 해결하는 구현 문제가 다음으로 많았다.
코딩테스트에서 문제 난이도 조합할 때, 쉬운 문제로 출제되는 문제 유형이며,
상위 난이도 문제를 해결하는데 조합되어야 하는 알고리즘 유형들이다.

출제 빈도가 높은 상위 11-20개의 문제 유형

문제 유형 출제 빈도 (%) 출제 수
#정수론 number_theory 2.16 984
#기하학 geometry 2.15 979
#트리 trees 2.07 941
#세그먼트 트리 segtree 2.07 941
#이분 탐색 binary_search 1.82 827
#애드 혹 ad_hoc 1.61 733
#너비 우선 탐색 bfs 1.60 728
#사칙연산 arithmetic 1.45 659
#시뮬레이션 simulation 1.45 659
#깊이 우선 탐색 dfs 1.30 594

다음은 해외 코딩테스트 사이트인 해커랭크의 알고리즘 유형 필터이다.
해당 필터는 빈번하게 사용되고 중요도가 높은 알고리즘을 기준으로 분류했을 것인데,
진단 유형으로 분류한 (ex Debugging) 항목등을 제외하면 위의 상위 1-20 문제 유형에 대부분 포함된다.

해커랭크 알고리즘 분류 및 백준 사이트의 알고리즘 유형 빈도를 보면,
그래프 및 다이나믹 프로그래밍, 그리디 알고리즘이 빈도와 중요도가 높아 보이고,

코딩테스트 준비할 시간이 없다면 이 3가지 유형을 우선 학습하면 유리할 것 같다.

출제 빈도가 높은 상위 21-40개의 문제 유형 (참고)

문제 유형 출제 빈도 (%) 출제 수
#구성적 constructive 1.27 578
#조합론 combinatorics 1.26 574
#누적 합 prefix_sum 1.26 572
#많은 조건 분기 case_work 1.11 505
#비트마스킹 bitmask 1.10 499
#데이크스트라 dijkstra 0.90 409
#해시를 사용한 집합과 맵 hash_set 0.79 361
#백트래킹 backtracking 0.78 356
#파싱 parsing 0.72 329
#분리 집합 disjoint_set 0.72 328
#스위핑 sweeping 0.70 319
#트리를 사용한 집합과 맵 tree_set 0.70 319
#분할 정복 divide_and_conquer 0.68 310
#우선순위 큐 priority_queue 0.67 304
#스택 stack 0.62 280
#트리에서의 다이나믹 프로그래밍 dp_tree 0.59 270
#두 포인터 two_pointer 0.53 240
#최대 유량 flow 0.51 231
#소수 판정 primality_test 0.51 230
#게임 이론 game_theory 0.49 222

시간 없을때, 어떤 알고리즘 유형을 우선 공부할 지, 혹은 복기할 지 판단하기 위해서 출제 빈도 등을 알아보았다..
참고만 하자 ㅎㅎ

728x90