1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. - dc official App
이방식대로면 아까말한 정렬방식대로 그냥하면안될듯? - dc App
뭐야 드가보니 풀었던거네
접근법어케됨? - dc App
C++로 풀었는데
접근법어케됨? - dc App
걍 루프2번이면 된다니까 이해못하냐?
님말대로하면 우선순위큰게 어느위치에 있는가에따라서 로케이션이바뀜 - dc App
내가한건 queue<pair>> 랑 prioirityqueue 하나 선언해서 큐에는 페어 <우선순위,인덱스>랑 pq에는 우선순위값 다때려박고
와일로 계속 돌리면서 요구하는 인덱스랑 인쇄되는 인덱스 계속 비교하면서 했는데
걍 다때려박아도 100개밖에안되서 시간 모자랄일 없는문제구만
ㄱㅅ - dc App
int answer = 1; queue<pair>> q;//인덱스,우선순위 priority_queue<int> pq; int cnt = 1; for(int i = 0 ; i < priorities.size() ; i++) { q.push(make_pair(i,priorities[i])); pq.push(priorities[i]); }
while(!q.empty()) { if(q.front().second == pq.top()) { if(location == q.front().first) return cnt; q.pop(); pq.pop(); cnt++; } else { q.push(q.front()); q.pop(); } }
대충 알아서 봐