[Swift] 백준 - 4344

Youngwoo Lee·2020년 11월 24일
0

Algorithm

목록 보기
7/9

평균은 넘겠지... 문제

문제 제목 그대로 평균을 넘는 사람을 구하는 문제이다.

문제:
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

입력:
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력:
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

해결해야 되는 부분은
1. 한줄에 받아오는 입력에서 첫번째 숫자를 빼고 고차함수 이용하는 것
2. 출력 값으로 소수점 이하 세번째 숫자까지 표현하는 것 이다.

2번의 경우는 Foundation을 import 해서 String(format: )을 사용해주면 손쉽게 표현할 수 있다.

import Foundation

var count: Int = Int(readLine()!)!

for _ in 0..<count{
    var result: Int = 0
    var numArr: [Int] = readLine()!.split(separator: " ").map{ Int($0)!}
    let studentNum: Int = numArr[0]
    numArr.removeFirst()
    
    for i in 0..<studentNum{
        if numArr[i] > numArr.reduce(0, { $0 + $1}) / studentNum{
            result += 1
        }
    }
   

    print(String(format: "%.3f", Float(result) / Float(studentNum) * 100),"%",separator: "")
}

profile
iOS Developer Student

0개의 댓글