본문 바로가기
Programming/BOJ

[BOJ] 25206 너의 평점은 (C++)

by coco88 2025. 5. 22.

https://www.acmicpc.net/problem/25206

 

 

review

과목명, 학점, 등급을 입력받아 등급을 점수로 변환해주고, 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값을 계산해주면 되기 때문에 비교적 간단한 문제였다. 

 

C++에서는 문자열의 switch문이 동작하지 않기 때문에 if-else 문을 이용했다. 

처음에 등급이 P인 과목은 계산에서 제외해야한다는 점을 고려하지 않고 코드를 작성했다가 예시 문제의 값과 다르게 나왔었다. 등급을 점수로 변환해주는 if-else문을 P가 아닌 경우에만 돌아가도록 조건문으로 감싸주어서 해결했다. 

 

C++ code

#include <iostream>
#include <cstring>

using namespace std;

int main(){
    string subject[20];
    float credit[20];
    float sum=0;
    float sum2=0;
    float score[20];
    string grade[20];

    for(int i=0;i<20;i++){
        cin>> subject[i] >> credit[i]>> grade[i];
        
        if (grade[i]!="P"){
            sum+=credit[i];
            if (grade[i]=="A+"){
                score[i]=4.5;
            }else if (grade[i]=="A0"){
                score[i]=4.0;
            }else if (grade[i]=="B+"){
                score[i]=3.5;
            }else if (grade[i]=="B0"){
                score[i]=3.0;
            }else if (grade[i]=="C+"){
                score[i]=2.5;
            }else if (grade[i]=="C0"){
                score[i]=2.0;
            }else if (grade[i]=="D+"){
                score[i]=1.5;
            }else if (grade[i]=="D0"){
                score[i]=1.0;
            }else {
                score[i]=0.0;
            }
        }
        sum2+=(credit[i]*score[i]);
    }

    cout<< sum2/sum << endl;

    return 0;
}

 

result

'Programming > BOJ' 카테고리의 다른 글

[BOJ] 2108 통계학 (C++)  (0) 2025.05.25