반응형
https://www.acmicpc.net/problem/25206
- 문제
해설
단순한 문제로 설명할 부분이 없다.
학점의 경우 앞 글자인 (A, B, C, D)만 구별해준 후, 뒤에 +가 있을 경우 0.5만 더해주는 방법으로 간단하게 구할 수 있다.
코드
c
#include <stdio.h>
int main() {
char name[51];
char grade[3];
double credit;
double sumCredit = 0.0;
double temp;
double res = 0.0;
for(int i = 0; i < 20; i++) {
scanf("%s %lf %s", name, &credit, grade);
if(grade[0] == 'P') continue;
sumCredit += credit;
if(grade[0] == 'F') continue;
if(grade[0] == 'A') temp = 4;
else if (grade[0] == 'B') temp = 3;
else if (grade[0] == 'C') temp = 2;
else temp = 1;
if (grade[1] == '+') temp += 0.5;
res += credit * temp;
}
printf("%lf", res / sumCredit);
return 0;
}
c++
#include <iostream>
using namespace std;
int main() {
string name, grade;
double credit;
double sumCredit = 0.0;
double temp;
double res = 0.0;
for(int i = 0; i < 20; i++) {
cin >> name >> credit >> grade;
if(grade == "P") continue;
sumCredit += credit;
if(grade == "F") continue;
if(grade[0] == 'A') temp = 4;
else if (grade[0] == 'B') temp = 3;
else if (grade[0] == 'C') temp = 2;
else temp = 1;
if (grade[1] == '+') temp += 0.5;
res += credit * temp;
}
cout << res / sumCredit;
return 0;
}
반응형
'알고리즘 > 백준 문제 풀이' 카테고리의 다른 글
[BOJ/백준] 2566번 최댓값 - [c/c++] 풀이 (1) | 2023.06.04 |
---|---|
[BOJ/백준] 2738번 행렬 덧셈 - [c/c++] 풀이 (1) | 2023.06.04 |
[BOJ/백준] 1316번 그룹 단어 체커 - [c/c++] 풀이 (1) | 2023.05.26 |
[BOJ/백준] 10988번 팰린드롬인지 확인하기 - [c/c++] 풀이 (0) | 2023.05.25 |
[BOJ/백준] 2444번 별 찍기-7 - [c/c++] 풀이 (0) | 2023.05.13 |
댓글