# 1603. Design Parking System
## 題目概要
為停車場設計一個停車系統。停車場有大、中、小三種停車位,每種尺寸都有固定數量的車位。
我們需要實現 ParkingSystem 類:
- `ParkingSystem(int big, int medium, int small)` 代表停車場每個大小位置數。
- `addCar(int carType)` 代表要停入一台車。carType可以是大、中、小三種,分別用1、2和 3 表示。如果沒有可用空間返回false,否則返回true。
```
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.
```
## 解題技巧
- 直接返回或者 switch case 都行,直接返回速度快,switch case 使用的內存小。
## 程式碼
```javascript=
/**
* @param {number} big
* @param {number} medium
* @param {number} small
*/
let arr = [];
var ParkingSystem = function(big, medium, small) {
arr = [big, medium, small];
};
/**
* @param {number} carType
* @return {boolean}
*/
ParkingSystem.prototype.addCar = function(carType) {
if (arr[carType - 1] > 0) {
arr[carType - 1]--;
return true;
} else return false;
};
/**
* Your ParkingSystem object will be instantiated and called as such:
* var obj = new ParkingSystem(big, medium, small)
* var param_1 = obj.addCar(carType)
*/
```
