LeetCode in Kotlin

1603. Design Parking System

Easy

Design a parking system for a parking lot. The parking lot has three kinds of parking spaces: big, medium, and small, with a fixed number of slots for each size.

Implement the ParkingSystem class:

Example 1:

Input [“ParkingSystem”, “addCar”, “addCar”, “addCar”, “addCar”] [[1, 1, 0], [1], [2], [3], [1]]

Output: [null, true, true, false, false]

Explanation:

ParkingSystem parkingSystem = new ParkingSystem(1, 1, 0);

parkingSystem.addCar(1); // return true because there is 1 available slot for a big car

parkingSystem.addCar(2); // return true because there is 1 available slot for a medium car

parkingSystem.addCar(3); // return false because there is no available slot for a small car

parkingSystem.addCar(1); // return false because there is no available slot for a big car. It is already occupied.

Constraints:

Solution

class ParkingSystem(big: Int, medium: Int, small: Int) {
    private val slots = IntArray(3)

    init {
        slots[0] = big
        slots[1] = medium
        slots[2] = small
    }

    fun addCar(carType: Int): Boolean {
        return if (carType == 1) {
            if (slots[0] > 0) {
                slots[0]--
                true
            } else {
                false
            }
        } else if (carType == 2) {
            if (slots[1] > 0) {
                slots[1]--
                true
            } else {
                false
            }
        } else {
            if (slots[2] > 0) {
                slots[2]--
                true
            } else {
                false
            }
        }
    }
}
/*
 * Your ParkingSystem object will be instantiated and called as such:
 * var obj = ParkingSystem(big, medium, small)
 * var param_1 = obj.addCar(carType)
 */