미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법이다. 해결책이 최선이라는 걸 보장하진 않는다.
func solution(_ n:Int, _ lost:[Int], _ reserve:[Int]) -> Int {
var students = Array(repeating: 0, count: n)
for i in lost { students[i - 1] -= 1 }
for j in reserve { students[j - 1] += 1 }
for (i, v) in students.enumerated() {
if v == -1 {
if i > 0 && students[i - 1] == 1 {
students[i - 1] -= 1
students[i] += 1
} else if i < n - 1 && students[i + 1] == 1 {
students[i + 1] -= 1
students[i] += 1
}
}
}
return students.filter{$0 >= 0}.count
}