구현(Implementation) : 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 모든 범위의 코딩테스트 문제 유형을 포함하는 개념이다. 흔히 문제 해결 분야에서 '구현'으로 분류되는 유형의 문제는 '풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제'
정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 정렬 알고리즘 : 프로그램을 작성할 때 가장 많이 사용되는 알고리즘 중 하나 이진 탐색의 전처리 과정이기도 함 매우 다양한데, 우선 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬만 정리해보고자 함
배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘데이터가 무작위일 때는 사용할 수 없지만, 이미 정렬되어 있다면 매우 빠르게 데이터를 찾을 수 있다는 특징이 있다.탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징이 있음위치를 나타내는 변수 3개를 사용하
: 말 그대로 가장 짧은 경로를 찾는 알고리즘길 찾기 문제라고도 불림애초에 Dynamic Programming 개념이 적용되어있음. 가장 적은 경로에서 축적해나가야 가장 최단 거리이기 때문최단 경로의 여러 경우한 지점에서 다른 특정 지점까지의 최단 경로한 지점에서 다른
서로소 집합(Disjoint Sets) : 공통 원소가 없는 두 집합 Union-Find 자료구조 (서로소 집합 자료구조) : 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조 두 종류의 연산을 지원함 Union(합집합) : 두 개의 원
: 그래프에서 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프💡 트리의 조건 : 모든 노드가 포함되어 서로 연결되면서 사이클이 존재하지 않는다는 조건: 최소한의 비용으로 구성되는 신장 트리예시 : N개의 도시가 있을 때, 두 도시 사이에 도로를 놓아 전체
위상 정렬 : 사이클이 없는 방향 그래프(DAG)의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것 DAG에 대해서만 수행 가능 > DAG (Directed Acyclic Graph) > 사이클이 없는 방향 그래프 ex) 선수강 과목을 고려한