[백준 20839] Betygsättning (C#, C++) - soo:bak
작성일 :
문제 링크
설명
기준 충족 여부에 따라 등급 A부터 E까지 판정하는 문제입니다.
접근법
A는 모든 기준 충족, B는 C와 E 충족에 A 절반 이상, C는 C와 E 충족, D는 E 충족에 C 절반 이상입니다.
조건을 위에서부터 차례로 검사하여 처음 만족하는 등급을 출력합니다.
어느 것도 해당하지 않으면 E를 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;
class Program {
static void Main() {
var total = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
var got = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
var x = total[0]; var y = total[1]; var z = total[2];
var sx = got[0]; var sy = got[1]; var sz = got[2];
var grade = "";
if (sx >= x && sy >= y && sz >= z) grade = "A";
else if (sy >= y && sz >= z && sx * 2 >= x) grade = "B";
else if (sy >= y && sz >= z) grade = "C";
else if (sz >= z && sy * 2 >= y) grade = "D";
else grade = "E";
Console.WriteLine(grade);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int x, y, z; cin >> x >> y >> z;
int sx, sy, sz; cin >> sx >> sy >> sz;
char grade;
if (sx >= x && sy >= y && sz >= z) grade = 'A';
else if (sy >= y && sz >= z && sx * 2 >= x) grade = 'B';
else if (sy >= y && sz >= z) grade = 'C';
else if (sz >= z && sy * 2 >= y) grade = 'D';
else grade = 'E';
cout << grade << "\n";
return 0;
}