문제링크
배운점
Map의 value값에 +1 을 해주기 위해서는 다시 set을 사용하여야합니다.
알고 있었지만 뭔가 낯설어서 메모합니다.
for (let i = 0; i < input.length; i++) {
if (dic.get(input[i])) {
//상기시킨점
dic.set(input[i], dic.get(input[i]) + 1);
} else {
dic.set(input[i], 1);
}
}
Map의 크기를 알아내기위해서는 size 라는 메소드를 사용합니다.
문제풀이와는 관련이 없습니다.
// 상기시킨점
let total = dic.size;
Map의 순회를 하기위해서는 for of 문을 사용합니다.
// 상기시킨점 Map 순회
for (let tree of dic) {
per = ((tree[1] / total) * 100).toFixed(4);
strr = tree[0] + ` ${per}`;
result.push(strr);
}
문제풀이
Map 자료구조를 사용할줄 아는가에 대한 문제입니다.
const fs = require("fs");
BOJkey = 0;
let input = fs
.readFileSync(BOJkey ? "./자바스크립트로/4358/input.txt" : "./dev/stdin")
.toString()
.trim()
.split("\n");
let dic = new Map();
for (let i = 0; i < input.length; i++) {
if (dic.get(input[i])) {
//상기시킨점
dic.set(input[i], dic.get(input[i]) + 1);
} else {
dic.set(input[i], 1);
}
}
// 상기시킨점
// let total = dic.size;
let total = input.length;
// console.log(total);
let result = [];
let per;
let strr = "";
// 상기시킨점 Map 순회
for (let tree of dic) {
per = ((tree[1] / total) * 100).toFixed(4);
strr = tree[0] + ` ${per}`;
result.push(strr);
}
result.sort();
console.log(result.join("\n"));
'공부기록 > 자바스크립트 코딩테스트' 카테고리의 다른 글
[백준/Python] 2696번 중앙값 구하기 (0) | 2022.07.04 |
---|---|
[백준/Python] 21939 문제 추천 시스템 Version 1 (0) | 2022.07.04 |
[백준/Python] 7662 우선순위 큐 (0) | 2022.07.02 |
[백준/JS] 14425 문자열집합 (0) | 2022.07.02 |
[백준/JS] 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.07.01 |