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

[C언어] 백준 2754번 학점계산

by 1005_ 2025. 4. 22.

[ 문제 ]

어떤 사람의 C언어 성적이 주어졌을 때, 평점은 몇 점인지 출력하는 프로그램을 작성하시오.

A+: 4.3, A0: 4.0, A-: 3.7

B+: 3.3, B0: 3.0, B-: 2.7

C+: 2.3, C0: 2.0, C-: 1.7

D+: 1.3, D0: 1.0, D-: 0.7

F: 0.0

[ 입력 ]

첫째 줄에 C언어 성적이 주어진다. 성적은 문제에서 설명한 13가지 중 하나이다.

[ 출력 ]

첫째 줄에 C언어 평점을 출력한다.

[ 작성한 코드 ]

#include <stdio.h>
#include <string.h>

int main()
{
    char score[2];
    int i;

    scanf("%s",score);

    if(score[0] == 'A') 
    {
        if(score[1] == '+')
        {
            printf("4.3");
        }
        if(score[1] == '0')
        {
            printf("4.0");
        }
        if(score[1] == '-')
        {
            printf("3.7");
        }
    }
    if(score[0] == 'B') 
    {
        if(score[1] == '+')
        {
            printf("3.3");
        }
        if(score[1] == '0')
        {
            printf("3.0");
        }
        if(score[1] == '-')
        {
            printf("2.7");
        }
    }
    if(score[0] == 'C') 
    {
        if(score[1] == '+')
        {
            printf("2.3");
        }
        if(score[1] == '0')
        {
            printf("2.0");
        }
        if(score[1] == '-')
        {
            printf("1.7");
        }
    }
    if(score[0] == 'D') 
    {
        if(score[1] == '+')
        {
            printf("1.3");
        }
        if(score[1] == '0')
        {
            printf("1.0");
        }
        if(score[1] == '-')
        {
            printf("0.7");
        }
    }
    if(score[0] == 'F')
    {
        printf("0.0");
    }
}

 

조건을 분기하는데 코드의 길이가 많이 길어졌지만 그래도 가장 직관적이고 사용하기 쉬운 방법으로 풀이했다.

알고리즘 분류

  • 구현
  • 문자열