[BOJ] C++ 2910: 빈도 정렬 - 정렬 기준 만들어서 정렬하기
2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 9 3 1 3 3 3 2 2 2 1 1 ans : 1 1 1 3 3 3 2 2 2 빈도를 기준으로 정렬하되, 들어온 순서를 유지하면서 정렬해야 한다. 빈도만 기준이었다면 떠오르는 방법은 아래와 같다. 맵에 빈도를 key로 값을 value로 해서 삽입한다. pair vector에 빈도, 값으로 삽입을 한 뒤 빈도를 기준으로 sort를 한다. 두 방법에서 기존 입력의 순서를 유지할 방법을 생각해 봤는데, sort를 병합 정렬로 직접 구현하지 않는 이상 맵이나 벡터를 확장하는 방법이었다. 맵 2개 사용, 하나..
2023.12.07