#【python】得点を丸め込むプログラム
個人用メモです。
##設問
- ①得点と②その得点の次の5の倍数との差が3未満(less than)の場合、①を丸め込んで②にする。
- 得点が38未満(less than)の場合は丸め込みしない。
▼sample input
73
67
38
33
▼sample output
75
67
40
33
▼my answer
def gradingStudents(grades):
finals=[]
for grade in grades:
if grade >= 38:
a = str(grade)[1]
if a == "3":
grade += 2
elif a=="4":
grade += 1
elif a=="8":
grade += 2
elif a=="9":
grade += 1
finals.append(grade)
return finals
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
grades_count = int(input().strip())
grades = []
for _ in range(grades_count):
grades_item = int(input().strip())
grades.append(grades_item)
result = gradingStudents(grades)
fptr.write('\n'.join(map(str, result)))
fptr.write('\n')
fptr.close()
■考え方
・次の5の倍数との差分が3未満になるのは、1の位が3,4,8,9の場合のみ。
■注意点
1桁の場合はパス。(2桁目が存在しない)
出力は配列で渡す。(配列をreturn)
「fptr.write('\n'.join(map(str, result)))」
※return gradeで返すと、メソッドが1回目の処理で終了してしまう。
・next multiple of n
nの倍数。
If the difference between the grade and the next multiple of 5 is less than 3, round up to the next multiple of 5.
得点と、その得点に近い5の倍数の値の差分が3以下なら、その5の倍数の値に丸め込みをする。
・constraints
制約。数値の条件。
1<n<100 など