우선순위큐
-
프로그래머스 배달 C++프로그래머스(Programmers) 2022. 7. 1. 14:17
제한사항 마을의 개수 N은 1 이상 50 이하의 자연수입니다. road의 길이(도로 정보의 개수)는 1 이상 2,000 이하입니다. road의 각 원소는 마을을 연결하고 있는 각 도로의 정보를 나타냅니다. road는 길이가 3인 배열이며, 순서대로 (a, b, c)를 나타냅니다. a, b(1 ≤ a, b ≤ N, a != b)는 도로가 연결하는 두 마을의 번호이며, c(1 ≤ c ≤ 10,000, c는 자연수)는 도로를 지나는데 걸리는 시간입니다. 두 마을 a, b를 연결하는 도로는 여러 개가 있을 수 있습니다. 한 도로의 정보가 여러 번 중복해서 주어지지 않습니다. K는 음식 배달이 가능한 시간을 나타내며, 1 이상 500,000 이하입니다. 임의의 두 마을간에 항상 이동 가능한 경로가 존재합니다. 1..
-
백준 11279 최대힙 C++백준 algorithm 2022. 4. 2. 23:58
예제 입력 1 복사 13 0 1 2 0 0 3 2 1 0 0 0 0 0 예제 출력 1 복사 0 2 1 3 2 1 0 0 => 최대힙을 구현할 수 있는지에 대한 문제였습니ㅏㄷ. => C++에는 queue 헤더 안에 priority_queue 자료형을 사용 할 수 있습니다. => 해당 자료형을 이용해서 주어진 조건에 따라 출력문을 출력하면 되는 문제였습니다. => 시간초과가 걸릴 경우, cin.tie(0); ios_base::sync_with_stdio(false); 해당 구문을 입력해줄 경우 시간초과에 걸리지 않게 됩니다. #include #include #include #include #include #include #include #include #include using namespace std; i..
-
프로그래머스 이중순위우선큐 C++프로그래머스(Programmers) 2022. 1. 26. 23:02
입출력 예 operations return ["I 16","D 1"] [0,0] ["I 7","I 5","I -5","D -1"] [7,5] 입출력 예 설명 16을 삽입 후 최댓값을 삭제합니다. 비어있으므로 [0,0]을 반환합니다. 7,5,-5를 삽입 후 최솟값을 삭제합니다. 최댓값 7, 최솟값 5를 반환합니다. #include #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; vector doublePq; for(string s : operations) { string sPart = s.substr(2); int tmp = stoi(sPart); if(s[0]..
-
더 맵게 C++프로그래머스(Programmers) 2021. 12. 23. 00:25
입출력 예 scoville K return [1, 2, 3, 9, 10, 12] 7 2 입출력 예 설명 스코빌 지수가 1인 음식과 2인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다. 새로운 음식의 스코빌 지수 = 1 + (2 * 2) = 5 가진 음식의 스코빌 지수 = [5, 3, 9, 10, 12] 스코빌 지수가 3인 음식과 5인 음식을 섞으면 음식의 스코빌 지수가 아래와 같이 됩니다. 새로운 음식의 스코빌 지수 = 3 + (5 * 2) = 13 가진 음식의 스코빌 지수 = [13, 9, 10, 12] 모든 음식의 스코빌 지수가 7 이상이 되었고 이때 섞은 횟수는 2회입니다. #include #include #include #include using namespace std; int solu..
-
프린터프로그래머스(Programmers) 2021. 11. 28. 21:04
#include #include #include #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 1; queue arr; //first : priority, second : index priority_queue priQue; for(int i=0; i queue와 priority queue를 사용하는 문제입니다. => priority를 사용하지 않을 경우 매번 지금 queue에 남아 있는 원소들 중 priority가 가장 높은 아이가 누구인지를 for문을 통해 찾아야 합니다. => 저는 이런방식을 사용하려 했지만, 오류가 나였으며 우선순위 큐를 사용할 경우 삽..