leetcode - corporate flight reservations(java)

silver·2021년 6월 30일

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로 다 바꿔놓았다
아마도 저 예약이 아닌 다른 의미로 받아 들여져서 그런듯 하다

0개의 댓글