1. 문제 설명
롤케이크 자르기
2. 문제 분석
- 왼쪽, 오른쪽에서 출발하는 각 누적합을 구한다. 형과 동생이 케이크를 자르는 단면 양 옆의 각 값이 동일할 때 카운트하자.
3. 나의 풀이
import Foundation
func solution(_ topping:[Int]) -> Int {
var left = Array(repeating: 0, count: topping.count)
var right = Array(repeating: 0, count: topping.count)
var toppingSet = Set<Int>()
for index in 0..<topping.count {
let food = topping[index]
toppingSet.insert(food)
left[index] = toppingSet.count
}
toppingSet.removeAll()
for index in stride(from: topping.count-1, to: -1, by: -1) {
let food = topping[index]
toppingSet.insert(food)
right[index] = toppingSet.count
}
var answer = 0
for index in 0..<topping.count-1 {
if left[index] == right[index+1] {
answer += 1
}
}
return answer
}