알고리즘 풀이

[C#] 백준 25206번 문제풀이

bimtaeur30 2026. 1. 13. 18:18

문제번호: 25206

문제명: 너의 평점

문제링크: https://www.acmicpc.net/problem/25206

문제내용과 예제 입/출력은 위 문제 링크에서 확인해 주시기 바랍니다.

 

안녕하세요. 이번주는 방학 심화반 수업기간이라 백준에 쏟을 시간이 많이 없어서 실버 5~4 정도 문제들로 문제풀이를 진행하려고 합니다. 이번엔 실버 5인 너의평점 문제를 풀어보았습니다.

 

해당 문제는 간단한 계산공식을 이용하여 풀이할 수 있습니다.

(학점 × 과목평점)의 합을 학점의 총합으로 나눈 값

 

학점, 과목평점을 입력으로 받아 위와 같은 공식으로 답을 출력하면 됩니다.

신경쓸 부분은 소수부분 제어와 딕셔너리 만들어두고 활용하기 정도인 것 같네요.

다음은 정답코드입니다.

 

public static void Main()
{
    StreamReader sr = new StreamReader(Console.OpenStandardInput()); // 안녕하세
    StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

    Dictionary<string, float> GradePoint = new Dictionary<string, float>()
    {
        {"A+", 4.5f },
        {"A0", 4.0f },
        {"B+", 3.5f },
        {"B0", 3.0f },
        {"C+", 2.5f },
        {"C0", 2.0f },
        {"D+", 1.5f },
        {"D0", 1.0f },
        {"F", 0.0f },
    };
    double num = 0;
    double answer = 0; // (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값
    while (true)
    {
        string _input = sr.ReadLine();
        if (_input == null) break;
        if (_input == "aaa") break;

        string[] input = _input.Split();

        float credit = float.Parse(input[1]); // 학점
        float rankPoint = 1;

        string rank = input[2]; // 등급
        if (GradePoint.ContainsKey(rank)) // 등급으로 과목평점 찾기
        {
            rankPoint = GradePoint[rank];
            answer += credit * rankPoint;
            num += credit; // 학점의 총합 구해내기
        }
    }

    sr.WriteLine((answer / num).ToString("F6"));

    sr.Close();
    sw.Close();
}

'알고리즘 풀이' 카테고리의 다른 글

[C#] 백준 24313번 문제풀이  (0) 2026.01.15
[C#] 백준 1475번 문제풀이  (0) 2026.01.14
[C#] 백준 15649번 문제풀이  (0) 2026.01.11
[C#] 백준 1927번 문제풀이  (0) 2026.01.10
[C#] 백준 9375번 문제풀이  (0) 2026.01.09