level - medium
[문제 내용]
각 항공의 총 예약된 좌석 개수를 반환
[example 1]
Input: reservations = [[1,2,10],[2,3,20],[2,5,25]], n = 5
Output: [10,55,45,25,25]
Explanation:
Flight labels: 1 2 3 4 5
Reservation 1 reserved: 10 10
Reservation 2 reserved: 20 20
Reservation 3 reserved: 25 25 25 25
Total seats: 10 55 45 25 25
Hence, answer = [10,55,45,25,25]
[example 2]
Input: reservations = [[1,2,10],[2,2,15]], n = 2
Output: [10,25]
Explanation:
Flight labels: 1 2
Reservation 1 reserved: 10 10
Reservation 2 reserved: 15
Total seats: 10 25
Hence, answer = [10,25]
[해결 방법]
굉장히 단순하게 n크기의 배열을 생성해서
해당 하는 항공의 좌석을 계속 더해줬다.
뭔가 이 문제가 medium 이라는게 믿기지 않을 정도로 쉬운데..
코드 효율성 같은 걸 보니 이런 식이 아닌 다른 방식으로 푸는 방법이 있는듯 하다..
그 방법은 한번 찾아봐야 할것 같다.
public int[] corpFlightReservations(int[][] reservations, int n) {
int[] seats = new int[n];
for(int[] reservation : reservations) {
for(int i=reservation[0]-1; i<=reservation[1]-1; i++) {
seats[i] += reservation[2];
}
}
return seats;
}
여담으로..
원래 reservations가 아닌..book과 ings로 이루어진 단어로 leetcode에 써있지만
저 단어가 들어가 있으면 비공개 처리 당하기때문에
임의로 의미가 동일한 reservations로 다 바꿔놓았다
아마도 저 예약이 아닌 다른 의미로 받아 들여져서 그런듯 하다