반응형
문제
Design Parking System - LeetCode
문제 해결 방법
- 자바 오브젝트 생성을 할수 있느냐고 묻는 문제 입니다.
- 1번 답은 기본적인 오브젝트 생성이며, 협업하고, 나중에 업데이트 하기 좋은 코드 입니다.
- 2번 답은 이 문제에 있어서 매우 효율적이지만, 나중에 업데이트하기 어려운 코드 입니다.
Github Link
https://github.com/eunhanlee/LeetCode_1603_DesignParkingSystem_Solution.git
1번 답
class ParkingSystem {
private int bigSlots; // 대형 차량용 사용 가능한 슬롯 수
private int mediumSlots; // 중형 차량용 사용 가능한 슬롯 수
private int smallSlots; // 소형 차량용 사용 가능한 슬롯 수
/**
* 각 차량 유형별로 지정된 수의 슬롯을 가지는 새로운 ParkingSystem을 생성합니다.
*
* @param big 대형 차량용 사용 가능한 슬롯 수
* @param medium 중형 차량용 사용 가능한 슬롯 수
* @param small 소형 차량용 사용 가능한 슬롯 수
*/
public ParkingSystem(int big, int medium, int small) {
this.bigSlots = big;
this.mediumSlots = medium;
this.smallSlots = small;
}
/**
* 주어진 유형의 차량을 주차 시스템에 추가합니다.
*
* @param carType 주차할 차량의 유형 (1은 대형 차량, 2는 중형 차량, 3은 소형 차량)
* @return 차량이 성공적으로 주차되었을 경우 true, 그렇지 않으면 false
*/
public boolean addCar(int carType) {
switch (carType) {
case 1: // 대형 차량
if (this.bigSlots > 0) { // 대형 차량용 슬롯이 사용 가능한지 확인
this.bigSlots--; // 대형 차량용 슬롯 수 감소
return true; // 차량 주차 성공
}
break;
case 2: // 중형 차량
if (this.mediumSlots > 0) { // 중형 차량용 슬롯이 사용 가능한지 확인
this.mediumSlots--; // 중형 차량용 슬롯 수 감소
return true; // 차량 주차 성공
}
break;
case 3: // 소형 차량
if (this.smallSlots > 0) { // 소형 차량용 슬롯이 사용 가능한지 확인
this.smallSlots--; // 소형 차량용 슬롯 수 감소
return true; // 차량 주차 성공
}
break;
// 주어진 조건에 따라 carType은 1, 2, 3 중 하나이므로
// default case는 필요하지 않습니다. switch 문이 모든 가능한 경우를 처리합니다.
// default:
// throw new IllegalArgumentException("유효하지 않은 차량 유형: " + carType);
}
return false; // 주어진 차량 유형에 대한 사용 가능한 주차 슬롯이 없음
}
}
2번 답
class ParkingSystem {
int[] slots; // 각 차량 유형의 사용 가능한 슬롯 수를 저장하는 배열입니다.
/**
* 주어진 크기의 주차 시스템을 생성합니다.
*
* @param big 대형 차량용 슬롯 수
* @param medium 중형 차량용 슬롯 수
* @param small 소형 차량용 슬롯 수
*/
public ParkingSystem(int big, int medium, int small) {
slots = new int[]{big, medium, small};
}
/**
* 주어진 유형의 차량을 주차 시스템에 추가합니다.
*
* @param carType 주차할 차량의 유형 (1은 대형 차량, 2는 중형 차량, 3은 소형 차량)
* @return 차량이 성공적으로 주차되었을 경우 true, 그렇지 않으면 false
*/
public boolean addCar(int carType) {
return --slots[carType - 1] >= 0;
}
}
참고
반응형
'old > Algorithm Solving' 카테고리의 다른 글
LeetCode 771. Jewels and Stones 자바 문제 풀이 (0) | 2023.08.02 |
---|---|
LeetCode 35. Search Insert Position 자바 문제 풀이 (0) | 2023.08.01 |
LeetCode 116. Populating Next Right Pointers in Each Node 자바 문제 풀이 (0) | 2023.07.28 |
LeetCode 378. Kth Smallest Element in a Sorted Matrix 자바 문제 풀이 (0) | 2023.07.27 |
LeetCode 328. Odd Even Linked List 자바 문제 풀이 (0) | 2023.07.26 |