목록priority_queue (3)
N
문제 민오는 1번부터 N번까지 총 N개의 문제로 되어 있는 문제집을 풀려고 한다. 문제는 난이도 순서로 출제되어 있다. 즉 1번 문제가 가장 쉬운 문제이고 N번 문제가 가장 어려운 문제가 된다. 어떤 문제부터 풀까 고민하면서 문제를 훑어보던 민오는, 몇몇 문제들 사이에는 '먼저 푸는 것이 좋은 문제'가 있다는 것을 알게 되었다. 예를 들어 1번 문제를 풀고 나면 4번 문제가 쉽게 풀린다거나 하는 식이다. 민오는 다음의 세 가지 조건에 따라 문제를 풀 순서를 정하기로 하였다. N개의 문제는 모두 풀어야 한다. 먼저 푸는 것이 좋은 문제가 있는 문제는, 먼저 푸는 것이 좋은 문제를 반드시 먼저 풀어야 한다. 가능하면 쉬운 문제부터 풀어야 한다. 예를 들어서 네 개의 문제가 있다고 하자. 4번 문제는 2번 문..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV-Tj7ya3jYDFAXr&categoryId=AV-Tj7ya3jYDFAXr&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com C++ STL의 priority_queue를 이용하면 쉽게 해결 가능..! #include #include using namespace std; int main(void) { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t; cin >> t; for(int tc = 1; t..

처음 문제를 풀었을 때는 벡터를 이용해서 문제를 풀었다..! 하지만 효율성 테스트에서 시간 초과로 통과하지 못했다.. 그래서 priority_queue를 이용하여 문제를 풀었다. priority_queue는 우선순위 큐로 greater, less 함수를 이용하여 오름차순, 내림차순으로 정렬을 할 수 있다..! 시간 복잡도는 O(logn)이기 때문에 벡터를 이용해 sort 하는 것보다 빠르다..! 코드는 어렵지 않으니 천천히 보면 따라갈 수 있다..! #include #include #include #include using namespace std; int solution(vector scoville, int K) { int answer = 0; priority_queue pq; for(int i = 0..