Tesseractjh
한 걸음씩
Tesseractjh
전체 방문자
오늘
어제
  • 전체 (293)
    • IT (30)
      • JavaScript (7)
      • TypeScript (5)
      • React (5)
      • Next.js (3)
      • MongoDB (2)
      • Webpack (2)
      • HTML & CSS (1)
      • Git (0)
      • AWS (1)
      • 기타 (4)
    • 연습장 (259)
      • 백준(BOJ) 문제풀이 (185)
      • 프로그래머스 문제풀이 (61)
      • LeetCode 문제풀이 (2)
      • HackerRank 문제풀이 (7)
      • 낙서장 (3)
      • 기타 (1)
    • 프로젝트 (3)
      • 지뢰피하기 (1)
      • 키릴-라틴 문자 변환기 (1)
      • Flex & Grid (1)
    • 멋쟁이사자처럼 프론트엔드 스쿨 1기 (1)
      • 일기 & 회고록 (1)

인기 글

티스토리

hELLO · Designed By 정상우.
Tesseractjh

한 걸음씩

연습장/백준(BOJ) 문제풀이

[백준 1302] 베스트셀러 with Node.js

2021. 5. 15. 10:24

문제 링크

https://www.acmicpc.net/problem/1302

 

1302번: 베스트셀러

첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고

www.acmicpc.net

풀이

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
    '연습장/백준(BOJ) 문제풀이' 카테고리의 다른 글
    • [백준 1543] 문서 검색 with Node.js
    • [백준 1654] 랜선 자르기 with Python
    • [백준 15652] N과 M (4) with Python
    • [백준 3986] 좋은 단어 with Node.js
    Tesseractjh
    Tesseractjh
    바닐라 자바스크립트를 좋아하는 개발자입니다

    티스토리툴바