반응형
2755
https://www.acmicpc.net/problem/2755
2755번: 이번학기 평점은 몇점?
첫째 줄에, 백준이가 이번 학기에 들은 과목 수가 주어진다. 둘째 줄부터 N개의 줄에 각 과목의 과목명, 학점, 성적이 주어진다. 과목명은 알파벳 소문자와 숫자, 그리고 밑줄 (_)로만 이루어져 있
www.acmicpc.net
[정답]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
def new_round(n):
n *= 100
return (int(n)+1)/100 if (n - int(n)) >= 0.5 else int(n)/100
N = int(sys.stdin.readline())
total = 0
cnt = 0
grade = {'A+':4.3, 'A0':4.0, 'A-':3.7, 'B+':3.3, 'B0':3.0, 'B-':2.7,
'C+':2.3, 'C0':2.0, 'C-':1.7, 'D+':1.3, 'D0':1.0, 'D-':0.7, 'F':0.0}
for n in range(N):
x, y, z = sys.stdin.readline().strip().split()
total += int(y) * grade[z]
cnt += int(y)
print('{0:.2f}'.format(new_round(total/cnt)))
|
cs |
.
.
.
[풀이]
딕셔너리를 이용하여 값들을 정리해준다.
입력받은 값들 중 학점과 성적만 건져서 계산해준다.
파이썬에 내장되어 있는 반올림 함수, round()는 일상에서 쓰는 반올림과 차이가 있다.
소수점 첫째자리에서 반올림할 때,
소수점 첫째자리가 0.5라면 앞자리의 짝홀에 따라 반올림이 달라진다.
예) 1.5 → 2 - - - - - - - - - -(홀) (올림)
2.5 → 2 - - - - - - - - - -(짝) (버림)
3.5 → 4 - - - - - - - - - -(홀) (올림)
따라서 new_round() 라는 함수를 만들어줬다.
결과를 출력할 때는 소수점 2자리까지 표현하기 위해서 format을 이용해준다.
print('{인덱스: .소수점자리 f}'. format(값))
간단한 문제이나, 세세한 부분을 무시하면 오류가 날 수 있다.
반응형
'백준 문제풀이' 카테고리의 다른 글
[백준 11091] 파이썬 : 알파벳 전부 쓰기 (0) | 2021.09.29 |
---|---|
[백준 11719] 파이썬 : 그대로 출력하기 2 (0) | 2021.09.29 |
[백준 9625] 파이썬 : BABBA (0) | 2021.09.28 |
[백준 3023] 파이썬 : 마술사 이민혁 (0) | 2021.09.26 |
[백준 10988] 파이썬 : 팰린드롬인지 확인하기 (0) | 2021.09.26 |