개발자 톡

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

JS

등록일
2024-11-11 18:03:45
조회수
35
작성자
vavoya6324
// 입력처리
const fs = require('fs')
const scoresGroup = fs.readFileSync('input.txt', 'utf8')
  .trim()
  .split('\n').
  slice(1)
  .map(v => v.split(' ').map((v, i) => [i, +v]))
const number = scoresGroup[0].length

const totalScores = []
for (let index = 0; index < number; index++) {
  let sum = 0
  scoresGroup.forEach(scores => {
    sum += scores[index][1]
  })
  totalScores.push([index, sum])
}
scoresGroup.push(totalScores)
const sortedScoresGroup = scoresGroup.map(scores => scores.sort((a, b) => b[1] - a[1]))
const result = []

sortedScoresGroup.forEach(scores => {
  let prevRank = undefined
  let prevScore = undefined
  const rankList = Array.from({length: number})

  scores.forEach((index_score, rank) => {
    const [index, score]= index_score
    // 이전 값이 존재하고 현재 점수랑 같으면
    if (prevScore !== undefined && prevScore === score) {
      rankList[index] = prevRank
    }
    // 이전 값이 없거나, 현재 점수랑 다르면
    else {
      rankList[index] = rank + 1
      prevScore = score
      prevRank = rank + 1
    }
  })
  result.push(rankList)

})

console.log(result.map(v => v.join(' ')).join('\n'))
#[HSAT_5회_정기_코딩_인증평가_기출]_성적_평가
#js

이 카테고리의 톡 더보기