개발자 톡

연습문제 톡 [HSAT 5회 정기 코딩 인증평가 기출] 성적 평가

hashMap 사용 풀이 (js)

등록일
2025-02-05 22:36:45
조회수
48
작성자
glass0620

해시맵 사용하면 시간초과 해결 가능합니다!


const fs = require('fs');
const input = fs.readFileSync(0,'utf-8').trim().split('\n');


const n = Number(input[0]); // 참가자 수(가로) // 대회 수(세로) = 3으로 고정됨
const results = input.splice(1,n);
let sumList = new Array(n).fill(0); // 참가자들의 점수 총합
let gradeList = [];


results.map(r => {
    let result = r.split(' ').map(Number);
    result.map((score,idx)=>{ // 총합 구하기
            sumList[idx] += score;
        })
    }
)
results.push(sumList.join(" ")); // sumList는 배열이라서 문자열로 바꿔주기


results.map((res)=>{
    let result = res.trim().split(' ').map(Number);
    let sortResult = [...result].sort((a,b)=>b-a); // 원본 유지하며 정렬
    let grade = 1;
    let gradeMap = new Map(); // 점수&등수 쌍
    for(let i=0; i<n; ++i){
        if(!gradeMap.has(sortResult[i])) gradeMap.set(sortResult[i], grade);
        grade++;
    }
    // 각각 gradeMap 점수에 해당하는 등수 부여
    let contestGrade =[];
    result.map((re)=>{
        contestGrade.push(gradeMap.get(re));
    })
    gradeList.push(contestGrade);
})


for(let i=0; i<4; ++i){
    let j = gradeList[i].join(" ");
    console.log(j);
}
#[HSAT_5회_정기_코딩_인증평가_기출]_성적_평가
#js
#javascript
#nodejs

이 카테고리의 톡 더보기