코테/백준

[백준] 4344 평균은넘겠지 스위프트

리드맥 2021. 12. 24. 15:45

코드:

import Foundation

let input = Int(readLine()!)!

for i in 1...input {
    var line = readLine()!.split(separator: " ").map{Float($0)!}
    var std = line.removeFirst()
    var average = line.reduce(0){$0 + $1} / std
    var hiav = line.filter{ $0>average }.count
    var result = round(1000 * Float(hiav) / std * 100) / 1000
    var result3f = String(format: "%.3f", result)
    print("\(result3f)%")
}


설명:

round() 함수는 5이상 반올림, 5미만 반내림을 하는 함수 입니다.  근데  백준에서느 import Foundation을 사용해야 인식이 되는것 같습니다. reduce() 고차함수는 배열의 첫재값과 두번째 값을 합쳐주는것을 반복해서 하나의 숫자만 남게해줍니다

ex) [1,2,3] 일떄 (0은 초깃값) 0 + 1 -> 1 + 2 - > 3 + 3  -> [6] 이런식이 됩니다

 

 

결과: