우선순위 큐 16

백준 23843번 콘센트 C++

https://www.acmicpc.net/problem/23843 23843번: 콘센트 광재는 전자기기 대여사업을 시작했다. 퇴근하기 전에 다음날 손님들에게 빌려줄 N개의 전자기기를 충전하려 한다. 사용 가능한 콘센트는 M개가 있고, 성능은 모두 동일하다. 전자기기들은 한 www.acmicpc.net 1. 전자기기들을 내림차순으로 정렬 2. 작은 수가 제일 먼저 뽑히게 하는 우선순위 큐 생성 3. 앞에서 m개만큼 전자기기를 우선순위 큐에 삽입 4. m ~ n-1까지 전자기기들의 시간을 우선순위 큐의 top을 뽑은 값에 더하고 다시 우선순위 큐에 삽입 ( 일이 가장 빨리 끝난 플러그에 바로 일 할당) 5. 우선순위 큐를 pop하면서 가장 마지막에 남은 원소가 답이다. #include #include #i..

알고리즘 2023.04.29

백준 14235번 크리스마스 선물 C++

https://www.acmicpc.net/problem/14235 14235번: 크리스마스 선물 크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만 www.acmicpc.net 우선순위 큐 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int main() { ios_base::sync..

알고리즘 2023.03.20

백준 2075번 N번째 큰 수 C++

https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 우선순위 큐를 사용하는데, 메모리 제한이 12MB이기때문에 우선순위 큐의 사이즈가 n을 계속 유지하도록 한다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; ..

알고리즘 2023.03.15

백준 19638번 센티와 마법의 뿅망치 C++

https://www.acmicpc.net/problem/19638 19638번: 센티와 마법의 뿅망치 마법의 뿅망치를 센티의 전략대로 이용하여 거인의 나라의 모든 거인이 센티보다 키가 작도록 할 수 있는 경우, 첫 번째 줄에 YES를 출력하고, 두 번째 줄에 마법의 뿅망치를 최소로 사용한 횟수 www.acmicpc.net 우선순위 큐 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int main() { ios_ba..

알고리즘 2023.02.12

백준 26215번 눈 치우기 C++

https://www.acmicpc.net/problem/26215 26215번: 눈 치우기 집 2와 집 3 앞의 눈을 치우고, 집 2와 집 3 앞의 눈을 치우고, 집 1과 집 3 앞의 눈을 치운 뒤 집 3 앞의 눈을 두 번 치우면 5분만에 모든 집 앞의 눈을 치울 수 있다. www.acmicpc.net 우선순위 큐를 사용해서 눈이 많이 쌓인 집부터 치움 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int n; i..

알고리즘 2023.01.18

백준 19640번 화장실의 규칙 C++

https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net 각 줄을 큐로, 줄의 맨 앞 사람들을 우선순위 큐로 관리해서 문제를 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; u..

알고리즘 2022.12.24

백준 23757번 아이들과 선물 상자 C++

https://www.acmicpc.net/problem/23757 23757번: 아이들과 선물 상자 모든 아이들이 실망하지 않고 각자 원하는 만큼 선물을 가져갈 수 있으면 $1$을, 그렇지 않으면 $0$을 출력한다. www.acmicpc.net 우선순위 큐 사용 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using int64 = long long; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL)..

알고리즘 2022.12.20

백준 11909번 배열 탈출 C++

https://www.acmicpc.net/problem/11909 11909번: 배열 탈출 상수는 2차원 배열 A[1..n][1..n] (n≥2, n은 자연수)을 가지고 있습니다. 이 배열의 각 원소는 1 이상 222 이하의 정수입니다. 배열을 가지고 놀던 상수를 본 승현이는, 질투심이 불타올라 상수를 A[1][1] www.acmicpc.net 우선순위 큐를 이용해서 다익스트라 알고리즘을 적용해서 해결하였다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; u..

알고리즘 2022.12.18

백준 22252번 정보 상인 호석 C++

https://www.acmicpc.net/problem/22252 22252번: 정보 상인 호석 암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를 www.acmicpc.net map에 key를 고릴라의 이름, value를 정보를 저장하고 있는 우선순위 큐로 넣어서 풀었다. #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; ..

알고리즘 2022.11.27

백준 14241번 슬라임 합치기 C++

https://www.acmicpc.net/problem/14241 14241번: 슬라임 합치기 영선이와 효빈이는 슬라임을 합치는 게임을 하고 있다. 두 사람은 두 슬라임을 골라서 하나로 합쳐야 한다. 게임은 슬라임이 하나 남았을 때 끝난다. 모든 슬라임은 양수 크기를 가지고 있다. 두 www.acmicpc.net 우선순위 큐 #include #include #include #include #include #include #include using namespace std; int main() { int n; cin >> n; priority_queue pq; for (int i = 0; i > input; pq.push(input); } int scor..

알고리즘 2022.11.09