본문 바로가기
알고리즘/백준

백준 25206번 너의 평점은 [C++]

by seongjun 2023. 11. 23.

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

 

25206번: 너의 평점은

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

www.acmicpc.net

 

 

#include <iostream>
#include <string>

using namespace std;

int main(){
    string arr[20][3];
    for (int i=0;i<20;i++){
        for (int j=0;j<3;j++){
            cin >> arr[i][j];
        }
    }

    string grade[9] = {"F", "D0", "D+", "C0", "C+", "B0", "B+", "A0", "A+"};
    double answer = 0.0;
    double sum = 0.0;
    for (int i=0;i<20;i++){
        for (int j=0;j<9;j++){
            if(grade[j] == arr[i][2]) {
                if (j == 0){ // F
                    answer += 0.0;
                    sum += stod(arr[i][1]);
                    break;
                } else {
                    answer += stod(arr[i][1]) * (0.5 * (j+1));
                    sum += stod(arr[i][1]);
                    break;
                }
            }
        }
    }

    cout.precision(6);
    cout << fixed;
    cout << answer / sum;
}

들어오는 입력을 과목명, 학점, 등급 순으로 나누어 저장하고, 모든 과목을 순회하며 학점 * 등급의 총합을 구한다.

이때, 학점만의 총합도 같이 구하며, 구한 값들로 평점을 반환한다.

P의 경우는 무시하며, 출력 조건에 맞게끔 소수 아래 6 번째 자리까지 출력할 수 있도록 설정한다.