
😎풀이
poisoned
: 중독된 시간
timeSeries
순회
2-1. time
: 현재 시간
2-2. interval
: 중독 종료 시간
2-3. 다음 공격 시간과 중독 종료 시간이 겹친다면 그 차이 만큼만 poisoned
에 누산
2-4. 아니라면, 지속시간 만큼 poisoned
에 누산
poisoned
반환
function findPoisonedDuration(timeSeries: number[], duration: number): number {
const n = timeSeries.length
let poisoned = 0
for(let i = 0; i < timeSeries.length; i++) {
const time = timeSeries[i]
const interval = time + duration - 1
if(i !== n - 1 && timeSeries[i + 1] <= interval) {
poisoned += timeSeries[i + 1] - time
continue
}
poisoned += duration
}
return poisoned
};