티스토리 뷰

문제 링크입니다 : programmers.co.kr/learn/courses/30/lessons/42891

 

코딩테스트 연습 - 무지의 먹방 라이브

 

programmers.co.kr

 

 

우선순위 큐 + 구현 문제였다. 구현 문제는 실수 안 하기가 진짜 어려운것 같다. 실수 하나를 해서 10분정도 시간을 더 쓴것 같다.

 

 

 

 

 

#include <string>
#include <vector>
#include <queue>

using namespace std;

int solution(vector<int> food_times, long long k) {
    int answer = 0;
    int step = 0;
    
    vector<bool> eatAll(food_times.size(), false);
    priority_queue<pair<int, int>> pq;
    
    for(int i = 0; i < food_times.size(); i++) {
        pq.push({-food_times[i], i});
    }
    
    while(true) {
        
        while(true) {
            if(pq.empty()) return -1;
            if(-pq.top().first <= step) {
                eatAll[pq.top().second] = true;
                pq.pop();
            } else {
                break;
            }
        }
        
        int pqSize = pq.size();
        if(k >= pqSize) {
            k -= pqSize;
            step++;
        } else {
            for(int i = 0; i < eatAll.size(); i++) {
                if(!eatAll[i]) {
                    if(k == 0) {
                        answer = i + 1;
                        break;
                    }
                    k--;
                }
            }
            break;
        }
    }
    
    return answer;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함