본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 25325/javascript] 학생 인기도 측정

by tokkiC 2022. 9. 9.

자바스크립트에선 카운트 할때 객체를 사용하면 편하다

c++ 에 비하면 그래도 번거롭긴하다만... 그러려니 한다 이젠...

객체로 값을 카운트 하여 형식에 맞게 정렬하고 요리조리 맞춰주면 된다

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

 

25325번: 학생 인기도 측정

첫 번째 줄부터 n번째 줄까지 학생 이름과 해당 학생을 좋아하는 학생 수를 공백으로 구분하여 한 줄에 출력한다. 인기도가 높은 학생부터 낮은 학생 순으로 출력하고, 인기도가 같은 경우 학생

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  inp.shift();
  let name = inp.shift().split(" ");
  let oj = {};
  for (el of name) {
    oj[el] = 0;
  }
  for (el of inp) {
    el.split(" ").map((eli) => oj[eli]++);
  }
  let temp = [];
  for (el of Object.keys(oj)) {
    temp.push([el, oj[el]]);
  }
  temp.sort((a, b) => {
    if (a[1] === b[1]) {
      return a[0] - b[0];
    } else {
      return b[1] - a[1];
    }
  });
  let ans = [];
  for (el of temp) {
    ans.push(el.join(" "));
  }
  console.log(ans.join("\n"));
};

댓글