최대 1 분 소요

950. Reveal Cards In Increasing Order

class Solution {
public:
    vector<int> deckRevealedIncreasing(vector<int>& deck) {
        deque<int> dq;
        sort(begin(deck), end(deck));
        auto it = rbegin(deck);
        while (it != rend(deck)) {
            if (!dq.empty()) {
                dq.push_front(dq.back());
                dq.pop_back();
            }
            dq.push_front(*it++);
        }
        return {dq.begin(), dq.end()};
    }
};

문제의 역순을 시뮬레이션 하면 된다.
리스트의 뒤쪽 값을 앞쪽으로 옮긴후 정렬한 deck 의 큰 값부터 리스트의 앞쪽에 넣는것을 반복 한다.

Time: O(n*log(n))

  • 정렬하는데에 n*log(n)

Space: O(n)

  • 중간에 deque 사용한게 n 이긴 한데, output 에 처리했으면 1로도 할수는 있다.

카테고리:

업데이트:

댓글남기기