[BOJ] 5766번: 할아버지는 유명해! 자바스크립트 풀이

2025. 6. 20. 07:04·Algorithm

 

문제

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

 

 

 

 

풀이과정

의사코드

1. 입력을 전부 받아 배열 input에 저장한다.
2. i = 0부터 시작하여, 테스트케이스별로 반복 처리한다.
3. 각 테스트케이스에서:
    N과 M을 선언한다.
    i+1 ~ i+N까지의 줄을 투표 결과(weekRanks)로 저장한다.
    i += N으로 다음 테스트케이스를 준비한다.
4. 선수별 득표수를 저장할 Map을 생성한다. 각 줄에서 등장하는 선수 번호를 순회하며:
    Map에 없다면 1로 초기화 있다면 기존 값에 +1
5. Map을 배열로 변환하고, 득표 수 기준으로 내림차순 정렬한다.
6. 두 번째 득표 수를 secondScore로 저장한다.
    (이 때, 최고점은 1명만 존재하므로 무조건 두번째에 값이 위치한다.)
7. 득표 수가 secondScore인 선수 번호만 골라서 오름차순 정렬한다.
8. 정답을 공백으로 이어 출력한다.
9. input[i]가 '0 0'이 될 때까지 위 과정을 반복한다.

 

 

전체코드

const readline = require('readline');

(async () => {
    const rl = readline.createInterface({ input: process.stdin });
    
    const input = [];
    for await (const line of rl) {
        input.push(line.trim());
        if (line.trim() === '0 0') rl.close();
    }
    
    let i = 0
    while (i < input.length - 1) {
        let [N, M] = input[i++].split(' ').map(Number);
        let weekRanks = input.slice(i, i + N);
        i += N;
        
        const voteMap = new Map();
        for (let ranks of weekRanks) {
            const players = ranks.split(' ').map(Number);
            for (let player of players) {
                voteMap.set(player, (voteMap.get(player) || 0) + 1);
            }
        }
        
        const sortedMap = [...voteMap.entries()].sort((a, b) => b[1] - a[1]);
        const secondScore = sortedMap[1][1];
        const secondPlace = sortedMap
            .filter(([_, score]) => score === secondScore)
            .map(([player]) => player)
            .sort((a, b) => a - b);
        
        console.log(secondPlace.join(' '));
    }
})();

'Algorithm' 카테고리의 다른 글

[BOJ] 2346번: 풍선 터뜨리기 자바스크립트 풀이 (메모리 초과)  (0) 2025.07.08
[BOJ] 22858번: 원상 복구 (small) 자바스크립트 풀이  (0) 2025.06.22
[BOJ] 10994번: 별 찍기 - 19 자바스크립트 풀이  (0) 2025.06.20
'Algorithm' 카테고리의 다른 글
  • [BOJ] 2346번: 풍선 터뜨리기 자바스크립트 풀이 (메모리 초과)
  • [BOJ] 22858번: 원상 복구 (small) 자바스크립트 풀이
  • [BOJ] 10994번: 별 찍기 - 19 자바스크립트 풀이
zooyaa
zooyaa
  • zooyaa
    성장 중!
    zooyaa
  • 전체
    오늘
    어제
    • 분류 전체보기 (12)
      • Algorithm (4)
      • CS (5)
      • Projects (0)
      • Web (1)
      • 경험들 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
zooyaa
[BOJ] 5766번: 할아버지는 유명해! 자바스크립트 풀이
상단으로

티스토리툴바