[알고리즘]체크인 체크아웃

임효진·2023년 2월 23일
0
*// 체크인 페이지 조건에 따라 이를 만족하는 알고리즘을 생성하자*
*//1)체크인과 체크아웃은 항상 정시에 진행한 것으로 가정한다*
*//2)체크아웃을 할 때 익일 시간은 24+a로 계산한다, 즉 새벽2 2시는 24+2인 26으로 표기한다*
*//3)체크인 페이지는 체크아웃이 새벽 5시 정각 또는 새벽 5시를 넘어가면 체크아웃을 잊은 것으로 간주한다*
*//따라서 새벽 5시가 넘어가 체크아웃을 하게되면 자동으로 체크아웃을 오후 21시로 한 것으로 간주한다.*
*//체크인과 체크아웃을 진행한 시간이 담긴 배열 두 개가 주어짐*
*//각 배열에는 월 ~ 일까지 체크인/아웃을 한 시간이 담겨있다.*
*//checkin과 checkout 배열의 길이는 각각 7이다.*
*//입출력 checkin : [9,9,8,8,7,8,9] checkout : [21,25,30,29,22,23,30] result = 96*
*//입출력 checkin : [9,7,8,9,7,9,8] checkout : [23,22,26,26,29,27,22] result = 110*

function solution(checkin, checkout) {
    //입력받는 배열의 길이는 같기 때문에 for문을 어느 것으로 돌려도 상관없음*
    let answer = 0;
    let stdyRecord = 0;
    for(let i = 0;i < checkout.length;i++) {
        if(checkout[i] >= 29 ) {
        //24시간제로 계산을 했을때 새벽 5시는 29시며, 새벽5시 정각이나 넘어가면이라는 조건이기의 <= 타입을 사용*
            checkout[i] = 21; 
        }
        //공부시간의 합계를 받을 변수에 체크아웃 시간 - 체크인 시간을 할당해준다.*
        stdyRecord = checkout[i] - checkin[i];
        answer += stdyRecord;
    }
    return answer;
}

let checkin = [9,7,8,9,7,9,8];
let checkout = [23,22,26,26,29,27,22];

let result = solution(checkin, checkout);
console.log(result);
profile
프론트 요정임

0개의 댓글