https://www.acmicpc.net/problem/2851
이 문제는 버섯을 순서대로 먹을 때 최대한 저수가 100과 가깝게 먹을 수 있도록 구현해야한다. 만약 98과 102가 있다면 더 큰 수인 102를 선택해줘야 한다.
그래서 나는 일단 점수를 입력받은 뒤, i번째까지 먹은 점수를 sumScore에 담아줬다. 그 뒤 sumScore에서 100을 뺀 값을 newSum에 담아줬다. 이제 newSum의 절대값을 하나씩 입력받은 뒤 그 값이 더 작으면 x 변수에 넣어주었다. 만약 그 값과 x 변수의 값이 같다면?? 절대값을 없애고 비교해서 찾아줬다.
var score: [Int] = []
for _ in 0..<10 {
score.append(Int(readLine()!)!)
}
var sumScore: [Int] = []
var sum = 0
for i in 0..<10 {
sum += score[i]
sumScore.append(sum)
}
let newSum = sumScore.map { $0 - 100 }
var index = 0
var x = Int.max
var recentResult = 0
for i in 0..<newSum.count {
if x > abs(newSum[i]) {
x = abs(newSum[i])
recentResult = newSum[i]
index = i
}
if x == abs(newSum[i]) {
if recentResult < newSum[i] {
index = i
}
}
}
print(sumScore[index])