백준 #13. [C++] 9498. 시험 성적에 따른 등급 출력, 효율적인 if문 작성

K Choi·2022년 1월 25일
0

백준

목록 보기
13/37
post-thumbnail

문제: 백준 9498

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

입력

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

출력

시험 성적을 출력한다.

예제 입력 1

100

예제 출력 1

A

학교 수업 때 정말 많이 풀어본 문제!
이번엔 실수 없이 한 번에 맞춰보자 plz....!!!

풀이

C 코드

#include <stdio.h>
int main() {
    int score;
    scanf("%d", &score);
    if (score>=90 && score<=100) printf("A");
    else if (score>=80 && score<90) printf("B");
    else if (score>=70 && score<80) printf("C");
    else if (score>=60 && score<70) printf("D");
    else printf("F");
    return 0;
}

왁 정말 오랜만에 한 번에 맞았다ㅠㅠ 감격....ㅋ큐ㅠㅠ
결과 나오는 데 오레 걸려서 또 컴파일 에러인 줄;

이번에는 C++로 코드를 짜볼까
(C++은 아직 자신이 없어서 어제 정리한 거 참고해서 작성!)

C++ 코드

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

C++에서도 논리곱 AND 연산자로 &&를 쓰는군요.

C++ 짧은 코드

와 제가 왜 이걸 못 떠올렸을까요.
else if 쓰면 어차피 이미 지나온 else 또는 else if문에서 조건이 한 번 걸러지니 아래와 같이 코드를 더 짧게 작성할 수도 있습니다.

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

훨씬 나은 것 같아요!
이번 기회에 if문을 좀더 효율적으로 작성하는 소소한 방법을 다시 떠올리고 갑니다ㅎ

profile
mbeCoder

0개의 댓글