백준 25206번: 너의 평점은 링크
https://www.acmicpc.net/problem/25206
문제를 풀기 전 생각한 것
등급을 입력받아 과목 평점으로 바꾸기
1 ≤ 과목명의 길이 ≤ 50
풀면서 어려웠던 점
처음엔 등급을 하나씩 비교하며 전공 평점을 구하려고 했다
하지만 코드가 길고 복잡해졌고 오류도 많았다
그래서 배열에 처음 들어오는 등급으로 소수점 앞부분을 먼저 구하고
그다음에 들어오는 +를 받아서 0.5를 더하는 방식으로 풀었다
코드
#include <stdio.h>
int main(void)
{
double score;
char subject[50];
char major[2];
double ans, sumScore, majorScore = 0.0;
for (int i = 0; i < 20; i++){
scanf("%s %lf %s", subject, &score, major);
if (major[0] == 'P') {
continue;
}
sumScore += score;
if (major[0] == 'F') {
continue;
}
else if (major[0] == 'A') {
majorScore = 4;
}
else if (major[0] == 'B') {
majorScore = 3;
}
else if (major[0] == 'C') {
majorScore = 2;
}
else {
majorScore = 1;
}
if (major[1] == '+') {
majorScore += 0.5;
}
ans += score * majorScore;
}
printf("%lf", ans / sumScore);
return 0;
}
풀면서 배운 점
다른 방식으로 접근해도 좋을 것 같다
반응형