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 번째 자리까지 출력할 수 있도록 설정한다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 2563번 색종이 [C++] (1) | 2023.11.25 |
---|---|
백준 10798번 세로읽기 [C++] (0) | 2023.11.25 |
백준 1316번 그룹 단어 체커 [C++] (0) | 2023.11.23 |
백준 2941번 크로아티아 알파벳 [C++] (1) | 2023.11.23 |
백준 11718번 그대로 출력하기 [C++] (1) | 2023.11.22 |