読者です 読者をやめる 読者になる 読者になる

300億円欲しい

メジャーリーグのデータ解析します

ARC003 問題A GPA計算

問題文

高橋君はアメリカに留学しようと考えており、成績表を提出することになりました。
アメリカ留学の成績表には、学力を測る指標であるGPAを表記する必要があります。
GPAとは各単位に対する評価(A,B,C,D,F)を点数に換算して平均した値で、点数への換算は以下のようになります。
A評価 → 4 点
B評価 → 3 点
C評価 → 2 点
D評価 → 1 点
F評価 → 0 点
全てF評価だった場合は、GPAは 0 になります。
高橋君の各単位に対する評価をもとにGPAを求めなさい。

http://arc003.contest.atcoder.jp/tasks/arc003_1

解答

main = do
    getLine
    grade <- getLine
    print $ mean $ map gradeToScore grade 


gradeToScore ::  Char -> Double
gradeToScore 'A' = 4
gradeToScore 'B' = 3
gradeToScore 'C' = 2
gradeToScore 'D' = 1
gradeToScore  _  = 0

mean :: [Double] -> Double
mean xs = (sum xs) / (fromIntegral $ length xs)