[백준/20839번] Betygsättning - B4/Python
https://www.acmicpc.net/problem/20839
문제
펠레는 펠레 최적화 학교 (PO-학교)에서 프로그래밍 교사로 일하고 있습니다. 그는 현재 최적화 1 과정에서 학생들의 성적을 매기고 있습니다.
성적은 다음과 같은 방식으로 매겨집니다. 총 $x$개의 A 기준, $y$개의 C 기준, $z$개의 E 기준이 사용됩니다. 성적 E를 받으려면 모든 E 기준을 충족해야 합니다. 성적 C를 받으려면 모든 C 기준과 E 기준을 충족해야 합니다. 성적 A를 받으려면 모든 A 기준, C 기준, E 기준을 충족해야 합니다.
또한 두 가지 특별한 성적이 있습니다. 모든 E 기준을 충족하고 C 기준의 절반 이상을 충족하면 D 성적을 받습니다. 모든 E 기준과 C 기준을 충족하고 A 기준의 절반 이상을 충족하면 B 성적을 받습니다.
펠레는 성적을 매기는 것이 매우 힘들다고 생각하여 당신의 도움이 필요합니다. 특정 학생이 충족한 A 기준, C 기준, E 기준의 수를 입력받아 그 학생이 받을 성적을 출력하는 프로그램을 작성하세요. 학생이 항상 최소한 E 성적은 받는다고 가정할 수 있습니다.
입력
첫 번째 줄에는 세 개의 정수 $1 \leq x \leq 30$, $1 \leq y \leq 30$ 및 $1 \leq z \leq 30$이 주어지며, 이는 존재하는 A-, C- 및 E-기준의 수를 나타냅니다. 두 번째 줄에는 세 개의 정수 $0 \leq x' \leq x$, $0 \leq y' \leq y$ 및 $0 \leq z \leq z$이 주어지며, 이는 학생이 충족한 A-, C- 및 E-기준의 수를 나타냅니다.
풀이
x, y, z = map(int,input().split())
a, b, c = map(int,input().split())
if a >= x and b >= y and c >= z:
print('A')
elif a >= x/2 and b >= y and c >= z:
print('B')
elif b >= y and c >= z:
print('C')
elif b >= y/2 and c >= z:
print('D')
else:
print('E')
해결방법
제시된 조건에 대해 순차적으로 점검하면서 학점을 부여하면 되는 문제. 문제 조건상 E이하의 학점은 없으니 추가적인 예외 처리는 필요 없음.