Notice
Recent Posts
Recent Comments
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Today
Total
Archives
관리 메뉴

cyphen156

백준-심화 1 너의 평점은_25206 본문

컴퓨터공학/알고리듬 풀이

백준-심화 1 너의 평점은_25206

cyphen156 2025. 1. 31. 14:07

너의 평점은

학점 계산 프로그램 만들기

제약사항

  • if grade is p Exacpt Value
  • 0 < subject <= 20
  • 1 ≤ 과목명의 길이 ≤ 50
  • 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다. 입력으로 주어지는 모든 과목명은 서로 다르다.
  • 학점은 1.0,2.0,3.0,4.0중 하나이다.
  • 등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P중 하나이다.
  • 적어도 한 과목은 등급이 P가 아님이 보장된다.

주의 사항

없다.

CPP풀이

너의 평점은_25206.cpp

/**
 * 백준 너의 평점은_25206
 * 학점 계산 프로그램 만들기
 * 
 * 제한사항
 *****************************************
 * if grade is p Exacpt Value
 * 0 < subject <= 20
 * 1 ≤ 과목명의 길이 ≤ 50
 * 과목명은 알파벳 대소문자 또는 숫자로만 이루어져 있으며, 띄어쓰기 없이 주어진다.
 * 입력으로 주어지는 모든 과목명은 서로 다르다.
 * 학점은 1.0,2.0,3.0,4.0중 하나이다.
 * 등급은 A+,A0,B+,B0,C+,C0,D+,D0,F,P중 하나이다.
 * 적어도 한 과목은 등급이 P가 아님이 보장된다.
 *****************************************
 *
 *
 *
 * 주의
 * 
 * 
 * 풀이시간 20분
 */
#include <iostream>
#include <unordered_map>

using namespace std;

const unordered_map<string, float> uMap_grades
{
    {"A+", 4.5f},
    {"A0", 4.f},
    {"B+", 3.5f}, 
    {"B0", 3.f},
    {"C+", 2.5f}, 
    {"C0", 2.f},
    {"D+", 1.5f}, 
    {"D0", 1.f},
    {"F", 0.f}, 
};

int main(void)
{
    float sum = 0.f;
    float cnt = 0.f;
    double avg = 0.;
    for (int i = 0; i < 20; ++i)
    {
        string subject;
        string grade;
        float credit = 0.f;
        cin >> subject >> credit >> grade;
        if (grade == "P")
        {
            continue;
        }
        sum += credit * uMap_grades.at(grade);
        cnt += credit; 
    }
    avg = (double)sum / cnt;
    cout.precision(7);
    cout << avg << endl;
    return 0;
}

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com