소수점 자리 수 출력제한: {:.(자리수)f}.format(value)
최장 스트릭 구하기
0 1 2 3 4 0 1 2 3 4 5 => 5 출력
모르겠음
[[4,A+] ... ]
실수의 자리수를 버리고 저장하는 방법
ans = "{:.3f}".format(average/divide)
출력 폼인 줄 알았는데 저장도 된다.
풀 수 있을 거 같은데 시간이
리스트 원소 인덱스 반환 enumerate
최소학점 문제
풀었는데 시간 지나서 문제가 닫혔다.
다른 유형의 학점 문제도 찾아볼까.
'''
아레나
'''
import math
# 최소학점 구하기
N, X = input().split()
point = []
N = int(N)
for i in range(N):
if i == N-1:
a = int(input())
point.append([a])
break
a, b = input().split()
a = int(a)
point.append([a, b])
tmp = [0.0, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]
pp = ['F', 'D0', 'D+', 'C0', 'C+', 'B0', 'B+', 'A0', 'A+']
average = 0
divide = 0
count = 0
for item in point:
if len(item) == 1:
for x in tmp:
if "{:.2f}".format((average+(item[0])*(x)) / (divide+item[0])) > X:
idx = tmp.index(x)
print(pp[idx])
break
else:
count += 1
if count == len(tmp):
print('impossible')
break
if item[1] == 'A+':
average += (item[0])*(4.5)
divide += item[0]
elif item[1] == 'A0':
average += (item[0])*(4.0)
divide += item[0]
elif item[1] == 'B+':
average += (item[0])*(3.5)
divide += item[0]
elif item[1] == 'B0':
average += (item[0])*(3.0)
divide += item[0]
elif item[1] == 'C+':
average += (item[0])*(2.5)
divide += item[0]
elif item[1] == 'C0':
average += (item[0])*(2.0)
divide += item[0]
elif item[1] == 'D+':
average += (item[0])*(1.5)
divide += item[0]
elif item[1] == 'D0':
average += (item[0])*(1.0)
divide += item[0]
elif item[1] == 'F':
average += (item[0])*(0.0)
divide += item[0]
요