😎풀이

  1. poisoned: 중독된 시간
  2. timeSeries 순회
    2-1. time: 현재 시간
    2-2. interval: 중독 종료 시간
    2-3. 다음 공격 시간과 중독 종료 시간이 겹친다면 그 차이 만큼만 poisoned에 누산
    2-4. 아니라면, 지속시간 만큼 poisoned에 누산
  3. 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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글