티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 9498번 : 시험 성적
Python3 코드
if - elif - else를 조건식으로 코드를 작성
score = int(input())
if score >= 90 :
print('A')
elif score >= 80 :
print('B')
elif score >= 70 :
print('C')
elif score >= 60 :
print('D')
else:
print('F')
Python3 코드 풀이
1) 작성한 코드에 대한 전체적인 내용 정리
이번 문제는 시험성적을 입력받으면 점수에 맞는 등급을 출력하는 문제이다. 이런 식으로 어떤 조건이 있을 때 그 조건에 부합하는 경우의 출력 값을 달리하는 문장은 if 조건식을 사용해서 작성할 수 있다. 조건식이 여러 개가 필요한 경우에는 if - else 조건식 사이에 여러 개의 elif 조건식을 추가해가며 작성하면 된다.
2) 코드 첫째줄
score = int(input())
우선 입력받는 숫자는 문자열로 입력되기 때문에 int 함수를 이용해서 정수로 변환하여 변수에 선언한다. 시험 점수이기 때문에 변수 이름은 score로 정해보았다.
3) 코드에서 if - elif - else 조건식
시험 점수에 따른 등급은 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F이다. 이때 A ~ D등급까지는 각 조건이 True인 경우에 그에 해당하는 값을 출력한다. 이 때는 if 조건식과 여러 개의 elif 조건식으로 코드를 작성할 수 있다. F등급은 위 조건이 모두 False인 경우에 출력하기 때문에 else 조건식에 해당하는 문장을 작성한다.
if score >= 90 : # 조건1
print('A') # 조건1이 참인경우
elif score >= 80 : # 조건2
print('B') # 조건2가 참인경우
elif score >= 70 : # 조건3
print('C') # 조건3이 참인경우
elif score >= 60 : # 조건4
print('D') # 조건4가 참인경우
else:
print('F') # 위 모든 조건이 거짓인 경우
4) 삼항 연산자
if조건식은 삼항 연산자를 사용하여 한 줄로 표현하는 것이 가능한데 조건식이 여러 개인 경우 중첩된 삼항 연산자를 작성하여야 해서 가독성을 해치게 될 수가 있다. 이번 문제도 삼항 연산자를 작성해 보았는데 문장이 너무 길어져서 if - elif - else 조건식에 비해서 좋지 않다는 느낌을 받았다. 코드는 아래와 같다.
print('A') if score >= 90 else print('B') if score >= 80 else print('C') if score >= 70 else print('D') if score >= 60 else print('F')
삼항 연산자로 표현식을 작성하면 코드가 짧아지는 것이 장점인데 이번 문제는 elif 조건식이 여러 개다 보니 삼항 연산자로 이용해도 짧다는 느낌을 받기가 어렵다. 코드는 우선 나부터가 보기 좋은 코드를 작성해야 나중에 다시 열어 볼 때에도 금방 이해가 되는 것 같다.
삼항 연산자에 대한 내용 설명이 필요하신 분들을 위해서 사용방법과 예제를 작성했던 이전 포스팅 링크를 걸어둔다. ▶ 삼항 연산자 설명
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 2753번 [파이썬] 윤년 (1) | 2020.07.02 |
---|---|
백준 1330번 [파이썬] 두수 비교하기 풀이 (0) | 2020.07.02 |
백준 2588번 [파이썬 알고리즘] 곱셈 (1) | 2020.07.01 |