코린이의 소소한 공부노트

[LeetCode/Easy] 1603. Design Parking System 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1603. Design Parking System

무지맘 2022. 12. 27. 16:38

목표: ParkingSystem 클래스 구현

- 생성자

- addCar 메서드

 

1. Input

1) 생성자: big, medium, small의 차가 주차할 수 있는 공간을 int 변수로 입력받음

2) addCar: carType을 입력받음. 1=big, 2=medium, 3=small

 

2. Output

1) addCar: 주차 가능하면 true, 불가하면 false를 반환

- 이때 주차에 성공하면 남은 주차장 공간도 관리해줘야함

 

3. Constraint

1) 0 <= big, medium, small <= 1000

2) addCar 메서드가 최대 1000번 호출될 수 있다.

 

4. Example

ParkingSystem ps = new ParkingSystem(1, 1, 0); // big 1대, medium 1대, small 0대의 주차공간 생성
ps.addCar(1); // big 1대 주차 가능하므로 true 반환. 남은 주차 공간은 medium 1대
ps.addCar(2); // medium 1대 주차 가능하므로 true 반환. 남은 주차 공간은 없음
ps.addCar(3); // small은 주차 가능하지 않으므로 false 반환
ps.addCar(1); // 이미 big 주차공간은 만차이므로 false 반환

 

5. Code

1) 첫 코드(2022/06/02)

class ParkingSystem {
    int big;
    int medium;
    int small;
 
    public ParkingSystem(int big, int medium, int small) {
        this.big = big;
        this.medium = medium;
        this.small = small;
    }

    public boolean addCar(int carType) {
        boolean result = false;
        if(carType == 1){
            if(big-1 >= 0){
                big--;
                result = true;
            }
        } else if(carType == 2){
            if(medium-1 >= 0){
                medium--;
                result = true;
            }
        } else{ // carType == 3
            if(small-1 >= 0){
                small--;
                result = true;
            }
        }
        return result;
    }
}

  - add만 하는 것은 문제가 없으나, 추후 출차 메서드가 생기면 maximum을 설정할 필요가 있음.