문제 출처: www.acmicpc.net/problem/9498
9498번: 시험 성적
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
1. 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
using namespace std; | |
int main(void) | |
{ | |
int score; | |
cin >> score; | |
switch (score / 10) | |
{ | |
case 10: | |
case 9: | |
cout << "A"; | |
break; | |
case 8: | |
cout << "B"; | |
break; | |
case 7: | |
cout << "C"; | |
break; | |
case 6: | |
cout << "D"; | |
break; | |
default: | |
cout << "F"; | |
break; | |
} | |
return 0; | |
} |
2. 풀이
처음 이 문제를 보고 if 문을 이용하여 문제를 해결할지, switch문으로 이 문제를 해결할지 생각을 해보았는데 조금 더 정리된 느낀이 있는 switch문을 이용하는게 좋을 것 같아서 해결하였다.
int score;
cin >> score;
우선 점수를 입력한다.
switch (score / 10)
그리고 switch에 score의 점수를 10으로 나눈 몫으로 한다. 왜냐하면 100/10 = 10, 90/10 =9, 80/10 = 8 ··· 등 이렇게 나오기에 이 값들을 이용하여 점수를 구할 것이다.
case 10:
case 9:
cout << "A";
break;
case 8:
cout << "B";
break;
case 7:
cout << "C";
break;
case 6:
cout << "D";
break;
default:
cout << "F";
break;
switch문에 입력한 값이 case 문의 값과 동일하면 실행이 된다. 즉, case 10, 9는 90~100의 수일 경우고 8은 80, 7은 70, 6은 60이다. 그리고 default는 그 어디에도 해당되는 경우가 없을 경우 출력하게 한다. 그렇게해서 정상적으로 출력되는 것을 알 수 있다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 2884번: 알람 시계 [C++] (0) | 2020.11.29 |
---|---|
백준 알고리즘 14681번: 사분면 고르기 [C++] (0) | 2020.11.27 |
백준 알고리즘 1330번: 두 수 비교하기 [C++] (0) | 2020.11.23 |
백준 알고리즘 2588번: 곱셈 [C++] (0) | 2020.11.22 |
백준 알고리즘 10430번: 나머지 [C++] (0) | 2020.11.21 |