2910번: 빈도 정렬
첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다.
www.acmicpc.net
알고리즘 : 정렬
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
let [n, c] = input
.shift()
.split(" ")
.map((v) => +v);
let arr = input[0].split(" ").map((v) => +v);
function solution() {
let answer = [];
let count = [];
// 카운트, 나온 순서
for (let i = 0; i < arr.length; i++) {
if (count.find((v) => v.num === arr[i])) {
count[count.findIndex((v) => v.num === arr[i])].count++;
} else {
count.push({ num: arr[i], count: 1 });
}
}
count.sort((a, b) => b.count - a.count);
count.forEach((v) => {
for (let i = 0; i < v.count; i++) {
answer.push(v.num);
}
});
console.log(answer.join(" "));
}
solution();
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 10709 기상캐스터 (0) | 2023.01.23 |
---|---|
[baekjoon] 4659 비밀번호 발음하기 (0) | 2023.01.13 |
[baekjoon] 1992 쿼드트리 (javascript) (0) | 2023.01.11 |
[baekjoon] 2583 영역 구하기 (javascript) (2) | 2023.01.11 |
[beakjoon] 2468 안전 영역 (javascript) (0) | 2023.01.11 |