반응형
https://www.acmicpc.net/problem/1966
우선순위 큐, 큐를 사용하는 완전탐색 문제였습니다.
Code :
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
38
39
40
41
|
#include <iostream>
#include <queue>
using namespace std;
int main(void){
int t;
cin >> t;
while(t--){
int N, M, ans = 0;
queue <pair<int, int>> q;
//내림차순으로 정렬
priority_queue <int> pq;
cin >> N >> M;
for (int i = 0; i < N; i++){
int x;
cin >> x;
//문서번호, 중요도
q.push({i,x});
pq.push(x);
}
while (!q.empty()){
//현재 배열의 인덱스와 중요도
int currentPage = q.front().first;
int currentImportance = q.front().second;
q.pop();
//현재 우선순위가 같다면.
if (pq.top() == currentImportance){
pq.pop();
ans++;
if (currentPage == M){
cout << ans << '\n';
break;
}
}
else {
q.push({ currentPage,currentImportance });
}
}
}
}
|
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 14500번 : 테트로미노 답 (0) | 2020.09.15 |
---|---|
(C++) - 백준(BOJ) 18111번 : 마인크래프트 답 (1) | 2020.08.23 |
(C++) - 백준(BOJ) 1436번 : 영화감독 숌 답 (0) | 2020.02.22 |
(C++) - 백준(BOJ) 2309번 : 일곱 난쟁이 (0) | 2017.02.07 |
(C++) - 백준(BOJ) 10988 : 펠린드롬인지 확인하기 (0) | 2016.11.29 |