๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ JS

[๋ฐฑ์ค€] node.js/ 1302 ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ

by Tamii 2021. 10. 19.
๋ฐ˜์‘ํ˜•

๋‚ด ํ’€์ด (์ •๋‹ต)

 

const fs = require('fs');

let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n');

input.shift();

let bookDict = {};

input.map((book) => {
  if (!bookDict[book]) bookDict[book] = 1;
  else bookDict[book] += 1;
});

const sortBook = Object.entries(bookDict)
  .sort(([aa, a], [bb, b]) => {
    if (a === b) {
      return aa < bb ? -1 : aa == bb ? 0 : 1;
    }
    return b - a;
  })
  .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});

console.log(Object.keys(sortBook)[0]);

 

 

1. book ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ ์ƒ์„ฑ

2. ์ž…๋ ฅ ๋ฐ›์€ ์ฑ…๋ฆฌ์ŠคํŠธ๋ฅผ ๋Œ๋ฉฐ dictonary ์— key๊ฐ’์œผ๋กœ ์ฑ„์›€

3. ๋‹ค์ค‘์กฐ๊ฑด ์ •๋ ฌ ( 1. value๊ฐ’ 2. ์•ŒํŒŒ๋ฒณ๊ฐ’)

4. ์ •๋ ฌํ•œ sortBook์˜ ์ฒซ๋ฒˆ์งธ key ๊ฐ’ ๋„์ถœ

 

 

Object.entries

๊ฐ์ฒด ์ž์ฒด์˜ [key, value] ์Œ์˜ ๋ฐฐ์—ด ๋ฐ˜ํ™˜

 

 

๋‹ค๋ฅธ ํ’€์ด

const result = Object.entries(obj).sort((a,b) => {
    if(a[1] === b[1]){
          return  a[0] > b[0] ? 1: -1
    }
    return b[1] > a[1] ? 1: -1
})

key ์™€ value ๋‘๊ฐ€์ง€ ๋‹ค ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—” ๊ตณ์ด [aa,a]๋กœ ๋‚˜ํƒ€๋‚ผ ํ•„์š” ์—†์ด a[0] a[1] ๋กœ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

JavaScript์—์„œ value ๊ฐ’์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๐Ÿ”— ๊ธฐ์–ต๋ณด๋‹ค๊ธฐ๋ก์„์„ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค..

 

๐Ÿฅณ ์˜ค๋Š˜์€ ํ•œ๋ฐฉ์— ๋งž์•˜๋‹ค~

๋Œ“๊ธ€