[백준] 9498번 시험 성적 C++ 문제 풀이 if문

2019. 6. 28. 23:57알고리즘/백준

728x90
반응형

문제

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

시험 성적을 출력한다.


예제 입력 1

100


예제 출력 1

A


문제 풀이

#include <iostream>
using namespace std;
int main() {
    int a;
    cin>>a;
    if(a >= 90 && a <= 100)
        cout<<"A";
    else if(a >= 80 && a < 90)
        cout<<"B";
    else if(a >= 70 && a < 80)
        cout<<"C";
    else if(a >= 60 && a < 70)
        cout<<"D";
    else
        cout<<"F";    
}

숏코드로 유명한 문제이지만 제가 짠 게 아니라 쓰지 않았습니다. 분류가 if문으로 분류되어서 예제에서 switch문으로 많이 보던 내용이지만 if문으로 옮겨봤습니다.

논리연산자 &&가 등장하는데 가장 큰 특징은 좌측 연산 결과가 false이면 우측은 검사하지 않고 넘어갑니다. 마찬가지로 ||연산자는 좌측 연산 결과가 true이면 우측은 검사하지 않고 넘어갑니다.  그렇기 때문에 피연산자의 위치에 따라 속도가 달라질 수 있습니다. 

그래서 저는 90보다 큰지 먼저 계산하도록 하였습니다. 90보다 작은 수는 한 번만 계산하고 넘어가기 때문에 보다 효율적인 코드가 될 수 있습니다. 반대로 F부터 A까지 검사하는 코드를 작성해도 무방합니다.

 

출처 : https://www.acmicpc.net/problem/9498

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

728x90
반응형