소수점 제한

GUNHEE LEE·2023년 9월 16일
0

소수점 자리 수 출력제한: {:.(자리수)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]
요
profile
새싹 개발자

0개의 댓글