포스트

Silver 25206. 너의 평점은

Silver 25206. 너의 평점은

[Silver V] 너의 평점은 - 25206

문제 링크

성능 요약

메모리: 9604 KB, 시간: 96 ms

분류

수학, 구현, 문자열

제출 일자

2025년 8월 19일 15:45:55

문제 설명

인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다!

치훈이의 전공평점을 계산해주는 프로그램을 작성해보자.

전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.

인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다.

A+4.5
A04.0
B+3.5
B03.0
C+2.5
C02.0
D+1.5
D01.0
F0.0

P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다.

과연 치훈이는 무사히 졸업할 수 있을까?

입력

20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이 공백으로 구분되어 주어진다.

출력

치훈이의 전공평점을 출력한다.

정답과의 절대오차 또는 상대오차가 104 이하이면 정답으로 인정한다.

너의 평점은.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const fs = require("fs");
const input = (process.platform === "linux" ? fs.readFileSync(0, "utf-8") : fs.readFileSync("run/input.txt")).toString().trim().split("\n");

let scoreA = 0;
let scoreB = 0;

const gpaList = {
  "A+": 4.5,
  "A0": 4.0,
  "B+": 3.5,
  "B0": 3.0,
  "C+": 2.5,
  "C0": 2.0,
  "D+": 1.5,
  "D0": 1.0,
  "F": 0.0,
};

for (let i = 0; i < input.length; i++) {
  const dataArr = input[i].split(" ");
  if (dataArr[2] === "P") {
    continue;
  } else {
    scoreA += Number(dataArr[1]) * gpaList[dataArr[2]];
    scoreB += Number(dataArr[1]);
  }
}

console.log(scoreA / scoreB);

이 글은 저작권자의 CC BY 4.0 라이센스를 따릅니다.