[Algorithm] 정렬
이번 정리는 데이터를 특정한 기준에 따라서 순서대로 나열하는 법인 정렬에 관한 것이다. 정렬은 단독 문제로 나오기도 하지만, 보통 그리디 알고리즘과 연계되서 나오는 경향이 있다. 정렬 기법은 문제에 따라 달라지므로, 각각의 특징을 알아야만 한다.
이번 정리는 데이터를 특정한 기준에 따라서 순서대로 나열하는 법인 정렬에 관한 것이다. 정렬은 단독 문제로 나오기도 하지만, 보통 그리디 알고리즘과 연계되서 나오는 경향이 있다. 정렬 기법은 문제에 따라 달라지므로, 각각의 특징을 알아야만 한다.
큐는 first-in first-out(FIFO)의 특징을 가진 선형 리스트이다. 알고리즘적으로는 대기열, 인터넷 전송 패킷 처리 등의 시뮬레이션을 풀이하는 데에 자주 쓰이며, BFS(깊이우선탐색)를 하기 위해선 반드시 알아야 하는 자료구조이다.
스택은 Last-in first-out(LIFO)의 특징을 가진 선형 리스트이다. 알고리즘적으로는 괄호 검증, DFS, 후위표기식 변환 및 계산에 주로 사용되며, 브라우저의 히스토리 기능과 함수 호출에서 이 구조를 발견할 수 있다.
제귀는 알고리즘이나 함수가 자기 자신을 호출하여 주어진 문제를 해결하는 기법이다. 알고리즘이 제귀적으로 되어 있는 경우인 팩토리얼 함수 계산, 피보나치 수열, 이항계수 계산, 이진 트리 알고리즘, 이진 탐색, 하노이 탑 문제에 주로 쓰인다.
자료구조에 대해 정리하고자 한다. 참고자료는 천인국 교수의 C언어로 쉽게 쓴 자료구조이며 C와 Python으로 모두 구현할 예정이다.
문제링크 : https://www.acmicpc.net/problem/8911
문제링크 : https://www.acmicpc.net/problem/21736
문제링크 : https://www.acmicpc.net/problem/1946
문제링크 : https://www.acmicpc.net/problem/1713
문제링크 : https://www.acmicpc.net/problem/1780