[BAEKJOON 9498번 : 시험 성적]
[문제]

[고찰]
해당 문제에 경우에 if 문을 통해 쉽게 풀 수 있는 문제입니다.
하지만 저는 switch문을 통해 풀어 방법을 소개하고자 정리하였습니다.
[개념]
switch문으로 풀기 위해서는, 점수를 case문에 맞는 조건으로 설정하는 것이 필요합니다.
그러기위해서 trunc( ) 함수를 사용하였습니다.
[ trunc( ) ]
trunc() 함수는 실수형 숫자의 소수 부분을 제거하고 정수 부분만 반환하는 함수입니다.
- 헤더파일
- <cmath>
- 형식
- double trunc(double x);
- float trunc(float x);
- long double trunc(long double x);
- 예시
#include <iostream>
#include <cmath>
int main() {
double value1 = 3.7;
double value2 = -3.7;
std::cout << "trunc(3.7) = " << trunc(value1) << std::endl; // 3.0
std::cout << "trunc(-3.7) = " << trunc(value2) << std::endl; // -3.0
return 0;
}
[정리]
trunc()함수를 활용하여 점수를 10으로 나눈뒤, 정수 부분만 반환합니다.
반환한 값에 10을 곱하여 100, 90, 80, 70, 60으로 반환되게 하면 switch문으로 문제를 풀 수 있습니다.
[Solution]
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int score;
cin >> score;
score = (int)(trunc(score / 10.0) * 10);
switch (score)
{
case 100:
cout << "A";
break;
case 90:
cout << "A";
break;
case 80:
cout << "B";
break;
case 70:
cout << "C";
break;
case 60:
cout << "D";
break;
default:
cout << "F";
break;
}
return 0;
}'코딩 테스트' 카테고리의 다른 글
| [코딩테스트 8일차] BAEKJOON 2439, 2440번 : 별 찍기 - 2, 3 (0) | 2025.04.20 |
|---|---|
| [코딩테스트 7일차] BAEKJOON 1264번 : 모음의 개수 (0) | 2025.04.19 |
| [코딩테스트 5일차] BAEKJOON 2744번 : 대소문자 바꾸기 (0) | 2025.04.10 |
| [코딩테스트 4일차] BAEKJOON 2741번 : N찍기 (0) | 2025.04.07 |
| [코딩테스트 3일차] BAEKJOON 2420번 : 사파리 월드, 2475번 : 검증수 (0) | 2025.04.06 |