개발자 톡

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

[HSAT 5회 정기 코딩 인증평가 기출] 성적 평가 -> 자꾸 런타임에러가 납니다. 고수 형님들 도와주십쇼

등록일
2023-08-09 21:06:29
조회수
516
작성자
chldlr98

아래 코드에서 오답은 없지만 자꾸 런타임에러가 납니다.. 히든 테스트 케이스 20번 후반대에서 런타임에러가 나는데 왜 자꾸만 런타임에러가 나는지 고수 형님들 조언 부탁드립니다..


const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split("\n");

const N = +input[0];
let score = []; // 회차 별 점수
let sum = Array.from({length: N}, () => 0); // 점수 합계

for (let i = 1; i < input.length; i ++) {
    score.push(input[i].trim().split(" ").map(Number));
};


// 회차 별 등수 출력
for (let point of score) {
    let dic = {};
    let idx = 0;
    let pointCopy = JSON.parse(JSON.stringify(point)); // 회차 별 등수 깊은 복사
    
    point.sort((a, b) => b - a); // 점수 내림차순 정렬

    for (let sc of point) {
        idx += 1;

        if (sc in dic === false) dic[sc] = idx;
    };

    let arr = [];

    for (let i = 0; i < pointCopy.length; i ++) {
        arr.push(dic[pointCopy[i]]);
        sum[i] += pointCopy[i];
    };

    console.log(...arr);
};

console.log(...sum_rank());


// 최종 점수 별 등수 출력
function sum_rank() {
    let sumdic = {};
    let sumidx = 0;
    let sumCopy = JSON.parse(JSON.stringify(sum)); // 회차 별 등수 깊은 복사
    
    sum.sort((a, b) => b - a); // 점수 내림차순 정렬

    for (let sc of sum) {
        sumidx += 1;

        // 점수가 존재하지 않을 때만 등수 입력
        if (sc in sumdic === false) sumdic[sc] = sumidx;
    };

    let sumarr = [];

    for (let i = 0; i < sumCopy.length; i ++) {
        sumarr.push(sumdic[sumCopy[i]]);
    };

    return sumarr;
};


#[hsat_5회_정기_코딩_인증평가_기출]_성적_평가
#node.js

이 카테고리의 톡 더보기