
logs 순회핵심은, 시작이 중첩될 경우 현재 시간을 포함하지 않는 것, 종료될 경우 현재 시간을 포함
function exclusiveTime(n: number, logs: string[]): number[] {
const spendTime = Array.from({ length: n }, () => 0)
const threadStack: number[] = []
let prevTime = 0
for(const log of logs) {
const [id, flag, timestamp] = log.split(":")
const time = Number(timestamp)
if(flag === 'start') {
if(threadStack.length > 0) {
spendTime[threadStack.at(-1)] += time - prevTime
}
threadStack.push(Number(id))
prevTime = time
} else {
const poppedId = threadStack.pop()
spendTime[poppedId] += time - prevTime + 1
prevTime = time + 1
}
}
return spendTime
};