강의로 돌아가기
박성권

priority_queue사용 안되나요?

  1. minheap을 구현하기 위해 priorityqueue greater> copy;를 하니까 에러가 나네요.
    priority_queue copy;를 했을 때까진 정상작동하는거 보면 STL 제한에 걸린 건 아닌거 같은데..왜그런걸까요?

  2. 실제 코딩테스트 때 STL은 어디까지 사용가능한가요?
    등 사용가능하겠죠???

작성중인 코드―solution.cpp
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
31
32
33
34
35
36
37
#include <string>
#include <vector>
#include <iostream>
#include <queue>
#include <algorithm>

using namespace std;


vector<int> solution(vector<int> array, vector<vector<int>> commands) {
    ios::sync_with_stdio(false);
    cin.tie(0);

    // priority_queue<int> copy;
    // priority_queue<int, vector<int> greater<int>> copy;
    vector<int> copy;
    vector<int> answer;

    for(int m=0; m<commands.size(); ++m){
        int i = commands[m][0];
        int j = commands[m][1];
        int k = commands[m][2];

        for(int l = i-1; l<j; ++l){
            copy.push_back(array[l]);
        }

        sort(copy.begin(),copy.end());
        answer.push_back(copy[k-1]);

        while(!copy.empty()){
            copy.pop_back();
        }

    }
    return answer;
}
1 개의 답변
Demi
  1. 코드를 보니, // priority_queue<int, vector<int> greater<int>> copy;코드에 콤마를 빼먹으셨네요. stl의 문제가 아니라 문법에러인 것 같습니다.
  2. 프로그래머스 환경에서는 stl 을 모두 사용하실 수 있습니다. 다만, 어뷰징을 막기위해 파일 오픈 등 시스템콜 등은 제한합니다.
  3. 지원자에게 코딩테스트에 stl 사용을 불허하는 일부 회사도 있습니다. 이 경우에는 사전에 지원자에게 stl 사용을 불허한다는 공지가 나갑니다.
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.