우당탕탕 파이썬 with 하루하나 알고리즘

백준 9498 파이썬 - 시험 점수에 해당하는 등급 출력하기

hyxndy 2022. 3. 13. 14:54

백준 9498번 - 시험 성정 with python

Q. 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

<if문>

지난 시간에 포스팅했던 글을 상기시켜보자.

if 문에 대해 사용할 때

if 조건1:

   수행할 문장1

   수행할 문장2

elif 조건2:

   수행할문장A

   수행할문장B

...

else 조건3:

   수행할문장(1)

   수행할문장(2)

의 형태로 조건문을 작성해주면 된다. 여기서 주의해야할 점은 조건 뒤에 콜론(:)을 붙여줘야하며,

각 조건 안에 있는 수행할문장들은 모두 들여쓰기가 되어야하며 들여쓰기의 양이 같아야한다.

 

그럼 이제 문제 상황에 맞는 코드를 작성해보자.

A = int(input())

if A >=90:
    print("A")
elif A >= 80:
    print("B")
elif A >=70:
    print("C")
elif A >= 60:
    print("D")
else:
     print("F")

A를 정수형의 인자로 받아주고, 나머지 조건들을 처리해주었다.

 

여기서 elif를 처리하는 과정을 해석해보면 A>=80이상일 때 B를 출력해준다는 내용이다.

여기서 의문점이 들 수 있다. 만약에 저 코드를 다 실행시켜보면, A=100이라면

마지막 else식을 제외하고 모든 조건문에 맞는 게 아닌가? 그래서 A, B, C, D 모두 출력되지 않을까?라는 의문점 말이다.

 

하지만 그렇지 않다.

여기서 if문이 참이면 바로 if문에 해당하는 식이 실행되고, 만약 if문이 거짓이라면, 그 다음에 elif를 처리하는 것이기 때문이다.

그러므로 두번째 조건식 elif A >=80이 참인 것이 의미하는 것은,

if A >=90이 거짓일때, 즉 A < 90이고, A >= 80이 성립하는 것을 의미하므로

A가 80이상이고 90미만일 때를 나타내는 것이다. 즉, 문제 상황인 80 ~ 89점은 B을 만족한다는 것이다.

이러한 원리로 C는 70이상 80미만, D는 60이상 70미만을 나타내고,

else 조건문은 위에 모든 조건들을 다 만족하지 않을 때이므로 A < 60일 때를 나타낸다.

 

그럼 상황을 다 이해했으므로 A = 100을 넣어보자.

 

A에 100을 넣었을 때 A등급이 잘 출력되는 것을 확인할 수 있다.

 

<코드>

A = int(input())

if A >=90:
    print("A")
elif A >= 80:
    print("B")
elif A >=70:
    print("C")
elif A >= 60:
    print("D")
else:
     print("F")