[LeetCode] 2432. The Employee That Worked on the Longest Task

Chobby·5일 전
1

알게된 것

목록 보기
64/64

😎풀이

  1. logs 순회
    1-1. 이전 마감 시간과 현재 마감 시간의 차를 통해 근무 시간 계산
    1-2. 가장 긴 근무 시간을 갱신하며 탐색
    1-3. 근무 시간이 동일하다면, 근무자 id가 낮은 사람의 id로 갱신
  2. 근무 시간이 가장 긴 사원의 id 반환
function hardestWorker(n: number, logs: number[][]): number {
    let [hardestId, hardestTime] = logs[0]
    for(let i = 1; i < logs.length; i++) {
        const [_, prevTime] = logs[i - 1]
        const [id, leaveTime] = logs[i]
        const curTime = leaveTime - prevTime
        if(hardestTime > curTime) continue
        if(hardestTime === curTime) {
            hardestId = Math.min(hardestId, id)
        } else {
            hardestId = id
            hardestTime = curTime
        }
    }
    return hardestId
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글