새소식

인기 검색어

프로그래머스/Lv.2

[Swift] 호텔 대실

  • -
import Foundation

enum 방 {
    case 입실
    case 퇴실
}

struct 예약정보 {
    let 시간: Double
    let 상태: 방
}

func solution(_ book_time:[[String]]) -> Int {
    
    var 예약리스트: [예약정보] = []
    
    book_time.forEach { time in
        var array = time.compactMap {Int($0.components(separatedBy: ":").joined())}
        array[1] += 10
        if 60 <= array[1] % 100 {
            array[1] += 40
        }
        
        예약리스트.append(예약정보(시간: Double(array[0]), 상태: .입실))
        예약리스트.append(예약정보(시간: Double(array[1]) - 0.1, 상태: .퇴실))
    }
    
    예약리스트 = 예약리스트.sorted { $0.시간 < $1.시간 }
    
    var 최대방갯수 = 0
    var 현재방갯수 = 0
    
    for 예약 in 예약리스트 {
        switch 예약.상태 {
        case .입실:
            현재방갯수 += 1
        case .퇴실:
            현재방갯수 -= 1
        }
        최대방갯수 = max(최대방갯수, 현재방갯수)
    }
    
    return 최대방갯수
}

 

'프로그래머스 > Lv.2' 카테고리의 다른 글

[Swift] 숫자 카드 나누기  (0) 2023.06.18
[Swift] 멀쩡한 사각형  (0) 2023.06.17
[Swift] 거리두기 확인하기  (0) 2023.06.17
[Swift] 점 찍기  (0) 2023.06.17
[Swift] 가장 큰 정사각형 찾기  (0) 2023.06.17
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.