[프로그래머스 Lv.2] 호텔 대실

김민지·2024년 6월 5일
0

✨ 정답 ✨

function solution(book_time) {
    let answer = 0;
    // 시간을 분 단위로 변환하고 퇴실 시간에 10분 추가
    book_time = book_time.map((el) => [
        +(el[0].split(':')[0]) * 60 + (+el[0].split(':')[1]),
        +(el[1].split(':')[0]) * 60 + (+el[1].split(':')[1]) + 10
    ]);

    // 입실 시간 기준으로 정렬
    book_time.sort((a, b) => a[0] - b[0]);

    let rooms = [];
    while (book_time.length > 0) {
        let [currentIn, currentOut] = book_time.shift();
        let foundRoom = false;

        // 기존 방들 중 사용할 수 있는 방이 있는지 확인
        for (let i = 0; i < rooms.length; i++) {
            if (rooms[i] <= currentIn) {
                rooms[i] = currentOut;
                foundRoom = true;
                break;
            }
        }

        // 사용할 수 있는 방이 없다면 새로운 방 추가
        if (!foundRoom) {
            rooms.push(currentOut);
        }

        // 현재 필요한 방의 수를 갱신
        answer = Math.max(answer, rooms.length);
    }

    return answer;
}

🧵 참고한 정답지 🧵

💡💡 해설 💡💡

내 코드 설명
주석 참고

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보