작성일 :

문제 링크

20839번 - Betygsättning

설명

기준 충족 여부에 따라 등급 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;
}