728x90
반응형
문제 출처 : https://www.acmicpc.net/problem/1092
풀이
박스를 배로 옮기는 시간의 최솟값을 출력하는 문제이다. 크레인과 박스를 내림차순으로 정렬한 후 박스를 담을 수 있는 경우 vector를 삭제해주면 된다. (그리디 알고리즘)
코드
#include <bits/stdc++.h>
using namespace std;
int N, M;
int ans;
int main(void) {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> N;
vector<int> crane(N);
for(int i = 0; i < N; i++)
cin >> crane[i];
sort(crane.begin(), crane.end(), greater<int>());
cin >> M;
vector<int> box(M);
for(int i = 0; i < M; i++)
cin >> box[i];
sort(box.begin(), box.end(), greater<int>());
if(box[0] > crane[0]){
cout << -1 << '\n';
return 0;
}
while(!box.empty()){
ans++;
for(int i = 0; i < crane.size(); i++){
for(int j = 0; j < box.size(); j++){
if(crane[i] >= box[j]){
box.erase(box.begin()+j);
break;
}
}
}
}
cout << ans << '\n';
return 0;
}
728x90
반응형
'Tech > Algorithm' 카테고리의 다른 글
[BOJ] 백준 15591 MooTube (Silver) c++ (그래프 이론, bfs) (0) | 2023.01.15 |
---|---|
[BOJ] 백준 1717 집합의 표현 c++ (유니온 파인드) (0) | 2023.01.14 |
[BOJ] 백준 20055 컨베이어 벨트 위의 로봇 c++ (구현) (0) | 2023.01.11 |
[BOJ] 백준 1339 단어 수학 c++ (그리디) (0) | 2023.01.10 |
[BOJ] 백준 1806 부분합 c++ (투포인터) (0) | 2023.01.09 |