백준 9498번_파이썬 알고리즘
Q. 백준 9498. 시험 성적
사용자로부터 시험성적을 입력받아 아래와 같이 출력하는 프로그램을 작성한다.
점수 | 출력 |
90 ~ 100점 | A |
80 ~ 89점 | B |
70 ~ 79점 | C |
60 ~ 69점 | D |
나머지(0 ~ 59점) | F |
(1) 입력 : 첫째 줄에 시험점수를 입력받는다. (*0 <= 점수 <= 100, 정수)
(2) 출력 : 입력받은 시험점수에 해당되는 시험 성적(학점) 출력
(*각 점수별 성적은 위의 표 참고)
A. 풀이
- 다양한 풀이방법으로 접근하기 위해 아래와 같이 삼항연산자를 중첩하여 코드를 짰다.
# Q 백준 9498, 시험 성적
score = int(input())
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"))))
1) 변수 선언부
- 먼저 학생의 점수를 입력받는다. 입력받을때 'input()'은 문자열로 처리되므로, 계산을 위해 'int()'함수로 전체를 묶어주어야 한다.
2) 조건문(if문)
- 아래와 같이 삼항연산자를 활용하여 코드를 짰다.
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"))))
- 장점이라면, 길어지는 코드를 한 줄에 짠 것이지만, 사용자에 따라 이부분이 오히려 단점이 될 수도 있겠다.
- 삼항연산자를 사용하지 않고 코드를 작성한다면 아래와 같이 짤 수 있다. 코드를 짤 때, 조건문이 너무 복잡한 조건을 주는 것이 아니라고 판단하여 위와 같이 간단하게 삼항연산자를 적용하였다.
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
- 조건문을 좀 보자면, 가장 먼저 '점수가 90이상'을 조건으로 잡았다. if문을 사용할 때에는 가장 국소적인 조건부터 포괄적인 조건으로 써내려가야 중첩되는 부분으로 잘못된 답을 도출하는 경우를 막을 수 있다.
R. 리뷰
- 새로운 문제에 새로운 접근방식은 도움이 많이 되지만, 익숙하지 않고 나중에 다시 떠올리기 힘든 부분이 있다.
- 특히 삼항연산자, 화살표함수 등이 익숙해지기 어려운 것 같다. 사실 아직 어떤 코드가 직관적인지 감이 잘 오지 않는다. 다른 개발자들이 작성한 더 복잡한 코드들을 많이 보고 해석해보면서 시야를 넓힐 필요가 있다.
'DEV > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1193번(파이썬) (1) | 2022.09.19 |
---|---|
백준 알고리즘 2884번(파이썬) (0) | 2022.09.19 |
백준 알고리즘 15552번(파이썬) (1) | 2022.09.17 |
백준 알고리즘 2525번(파이썬) (0) | 2022.09.16 |
백준 알고리즘 10171번, 25083번(파이썬) (0) | 2022.09.15 |
댓글