Algorithm/Baekjoon

Swift - 18110번 sovled.ac

ytw_developer 2024. 8. 20. 16:31
removeFirst와 removeLast는 지우고싶은 개수 만큼 Int 값을 넣어서 지울 수 있습니다

 

 

removeFirst와 removeLast는 지우고 싶은 만큼 Int 숫자만큼 넣어서 지울 수 있습니다.

 

rounded 메서드를 사용하면 반올림을 할 수 있습니다.

 

  • 가장 큰 값과 작은값들을 지우기 위해서는 sort를 사용하여 정렬을 해두는 것이 문제를 해결하는데 쉬워집니다.
  • solved.ac를 풀기 위해서는 0.15% 만큼 앞뒤로 짤라야합니다. 하지만 0.15를 곱해주면 소수점이 나올 수 있기 때문에 그러기 위해서는 rounded를 사용해서 반올림을 해줘야 합니다.
import Foundation

let n = Int(readLine()!)!

var arr:[Int] = []

if n == 0 {
    print(0)
    exit(0)
}
for _ in 0..<n  {
    arr.append(Int(readLine()!)!)
}

arr.sort()

let count = arr.count
let ratio = Int((Double(count) * 0.15).rounded())

arr.removeFirst(ratio)
arr.removeLast(ratio)

let sum = Double(arr.reduce(0,+))/Double(arr.count)
print(Int(sum.rounded()))