공부블로그

유연근무제 - 프로그래머스 LV.1 (JavaScript) 본문

공부하기/알고리즘

유연근무제 - 프로그래머스 LV.1 (JavaScript)

떠어영 2025. 11. 23. 17:59
function solution(schedules, timelogs, startday) { 
    // 우선 전체 인원을 넣어놓고 탈락시키는 방식
    var answer = timelogs.length;

    for (let i = 0; i < timelogs.length; i++) {
        // i번째 사람의 스케쥴과 출근시간
        let day_num = startday; // 5
        const schedule = schedules[i] // 700
        const times = timelogs[i] // [710, 2359, 1050, 700, 650, 631, 659]
        
        // 주말 근무타임은 제외시키기
        let day_times = []
        if (startday == 7) {
            day_times = times.slice(1, 6)
        } else {
            day_times = [...times]
            day_times.splice(6 - startday, 2)
        }
        // 주중 출근 시간만 비교
        for (const time of day_times) {
            const mins = Math.floor(time / 100) * 60 + (time % 100)
            const schedule_mins = Math.floor(schedule / 100) * 60 + (schedule % 100)
            
            const gap = mins - schedule_mins // 출근시간 - 예정시간
                if (gap > 10){// 10분 차이보다 크면 바로 탈락
                    answer -= 1
                    break
            }
        }
    }
    return answer;
}

 

코테공부가 넘 오랜만이라 머리가 안돌아가지만 그래도 하나 더 풀었다

기본 문법(slice, splice)도 좀 더 익어야할 것 같고, 일주일 단위 계산할때는 7 % n 쓰는 거 기억하기..! 이번에는 그냥 배열을 잘라버렸다