Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Number of the Smallest Unoccupied Chair #77

Closed
Tracked by #26
fkdl0048 opened this issue Oct 11, 2024 · 0 comments
Closed
Tracked by #26

The Number of the Smallest Unoccupied Chair #77

fkdl0048 opened this issue Oct 11, 2024 · 0 comments
Assignees
Labels
Milestone

Comments

@fkdl0048
Copy link
Owner

fkdl0048 commented Oct 11, 2024

class Solution {
public:
    int smallestChair(vector<vector<int>>& times, int targetFriend) {
        int n = times.size();

        vector<int> order(n);
        for (int i = 0; i < n; i++) order[i] = i;

        sort(order.begin(), order.end(), [&times](int a, int b) {
            return times[a][0] < times[b][0];
        });

        priority_queue<int, vector<int>, greater<int>> emptySeats;
        priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> takenSeats;

        for (int i = 0; i < n; i++) emptySeats.push(i);

        for (int i : order) {
            int arrival = times[i][0], leave = times[i][1];

           while (!takenSeats.empty() && takenSeats.top().first <= arrival) {
                emptySeats.push(takenSeats.top().second);
                takenSeats.pop();
            }

            int seat = emptySeats.top();
            emptySeats.pop();

            if (i == targetFriend) return seat;

            takenSeats.push({leave, seat});
        }

        return -1;  
    }
};
  • 자료구조를 좀 복잡하게 쓸 수 있어야 풀 수 있는 문제
@fkdl0048 fkdl0048 mentioned this issue Oct 11, 2024
7 tasks
@fkdl0048 fkdl0048 self-assigned this Oct 11, 2024
@fkdl0048 fkdl0048 added this to Todo Oct 11, 2024
@github-project-automation github-project-automation bot moved this to Todo in Todo Oct 11, 2024
@fkdl0048 fkdl0048 added this to the LeetCode milestone Oct 11, 2024
@github-project-automation github-project-automation bot moved this from Todo to Done in Todo Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

No branches or pull requests

1 participant