[백준] 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
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2884번 알람 시계 C++ 문제 풀이 if문 (0) | 2019.07.01 |
---|---|
[백준] 2753번 윤년 C++ 문제 풀이 if문 (0) | 2019.07.01 |
[백준] 1330번 두 수 비교하기 C++ 문제 풀이 if문 (0) | 2019.06.28 |
[백준] 2588번 곱셈 C++ 문제 풀이 입출력과 사칙연산 (0) | 2019.06.26 |
[백준] 10171번 고양이 C++ 문제 풀이 입출력과 사칙연산 (0) | 2019.06.25 |