반응형
문제링크
https://www.acmicpc.net/problem/32953
풀이방법
- N, M이 주어지는 0번 인덱스를 제외하고, 짝수 인덱스에 클래스를 듣는 학생들의 학번이 있다.
- 학번을 split을 활용하여 배열로 만들고, 학번을 key로 잡고 학번마다 듣는 클래스 수를 value로 잡는다.
- key값에 대한 value가 존재하지 않을 경우, value를 1로 세팅하고 value가 존재할 경우 이전 값에서 1을 더해준다.
- Map을 순회하며 value가 M 이상인 key값의 수를 세어 출력한다.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const input = [];
rl.on("line", (line) => {
input.push(line);
});
rl.on("close", () => {
const [N, M] = input[0].split(" ").map(Number);
const studentsClassesMap = new Map();
for (let i = 1; i <= N; i++) {
const students = input[i * 2].split(" ");
students.forEach((student) => {
const studentClasses = studentsClassesMap.get(student);
studentsClassesMap.set(student, studentClasses ? studentClasses + 1 : 1);
});
}
let count = 0;
for (const [_, classes] of studentsClassesMap) {
if (classes >= M) {
count++;
}
}
console.log(count);
});
반응형
'개발' 카테고리의 다른 글
[HTTP 완벽 가이드] 16장 국제화 16.4~16.6 (0) | 2025.02.04 |
---|---|
[99클럽] 알고리즘 TIL: 백준 10828번 스택 - JavaScript (1) | 2025.02.03 |
[99클럽] 알고리즘 TIL: 백준 31562번 전주 듣고 노래 맞히기 - JavaScript (1) | 2025.01.24 |
[HTTP 완벽 가이드] 16장 국제화 16.1~16.3 (1) | 2025.01.22 |
[HTTP 완벽 가이드] 15장 엔터티와 인코딩 15.4~15.10 (0) | 2025.01.22 |