#include <stdio.h>
#include <string.h>
int main() {
// g = 학점, r = 결과, u = 최대 과목평점
float g, r = 0, u = 0;
// c = 과목명, s = 과목평점
char c[51], s[3];
// 20개의 과목에 맞춰 반복
for (int i = 0; i < 20; i++) {
// 과목명, 학점, 과목평점
scanf("%s %f %s", c, &g, s);
// 과목평점이 P 일 경우 계산 없이 무시
if(strcmp(s, "P") == 0) continue;
// 각 과목 평점에 맞추어 전공평점(학점 × 과목평점) 계산 후 결과값에 더함
if (strcmp(s, "A+") == 0) {
r += g * 4.5;
} else if (strcmp(s, "A0") == 0) {
r += g * 4.0;
} else if (strcmp(s, "B+") == 0) {
r += g * 3.5;
} else if (strcmp(s, "B0") == 0) {
r += g * 3.0;
} else if (strcmp(s, "C+") == 0) {
r += g * 2.5;
} else if (strcmp(s, "C0") == 0) {
r += g * 2.0;
} else if (strcmp(s, "D+") == 0) {
r += g * 1.5;
} else if (strcmp(s, "D0") == 0) {
r += g * 1.0;
}
// 최대 과목평점 계산을 위해 P를 제외한 과목평점을 모두 더함
u += g;
}
// 결과 / 최대 과목평점을 계산하여 평점을 출력
printf("%f", r / u);
return 0;
}
이 문제는 P와 NP를 어떻게 처리할지가 헷갈렸던 문제였었다.