😎풀이

  1. releaseTimes 순회
    1-1. 이전 시간과 현재 시간을 비교하여 지속시간 확인
    1-2. 현재 지속시간과 최대 지속시간을 비교하여 갱신
    1-3. 동일한 지속시간 이라면, key를 기준으로 사전 순 더 높은 key로 갱신
  2. 지속시간이 가장 긴 key 반환
function slowestKey(releaseTimes: number[], keysPressed: string): string {
    let maxKey = keysPressed[0]
    let maxDuration = releaseTimes[0]
    for(let i = 1; i < releaseTimes.length; i++) {
        const prevTime = releaseTimes[i - 1]
        const curTime = releaseTimes[i]
        const curKey = keysPressed[i]
        const curDuration = curTime - prevTime
        if(maxDuration > curDuration) continue
        else if(maxDuration === curDuration) {
            if(curKey > maxKey) maxKey = curKey
            continue
        }
        maxKey = curKey
        maxDuration = curDuration
    }
    return maxKey
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글