문제 링크
https://www.acmicpc.net/problem/1302
풀이
const [N, ...arr] = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
let maxCount = 0;
let maxName = "";
const dict = {};
arr.forEach(name => {
if (dict[name]) dict[name]++;
else dict[name] = 1;
if (dict[name] === maxCount && name < maxName) maxName = name;
else if (dict[name] > maxCount) {
maxName = name;
maxCount = dict[name];
}
});
console.log(maxName);
dict 객체를 만들어서 책이름과 그 개수를 프로퍼티와 값으로 저장한다.
입력된 책의 이름들을 순회하면서 책의 개수가 maxCount와 동일하면 책이름의 사전순서를 비교하여 앞서면 maxName을 변경하고, 책의 개수가 maxCount보다 크면 maxCount와 maxName 모두 변경한다.
마지막에 maxName에 저장된 책 이름이 가장 많이 팔린 책 제목이 된다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 1543] 문서 검색 with Node.js (0) | 2021.05.16 |
---|---|
[백준 1654] 랜선 자르기 with Python (0) | 2021.05.15 |
[백준 15652] N과 M (4) with Python (0) | 2021.05.12 |
[백준 3986] 좋은 단어 with Node.js (0) | 2021.05.10 |
[백준 15651] N과 M (3) with Python (0) | 2021.05.10 |