코테/백준
[백준] 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] 이런식이 됩니다
결과: