-
https://www.acmicpc.net/problem/1092
1092번: 배
첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보
www.acmicpc.net
<문제>
그리디 : 무게 제한이 높은 순으로, 무거운 박스부터 옮긴다(정렬)
(가장 무게제한이 높은 크레인) < (가장 무거운 박스) 일때에만 -1을 출력하면 되고, 그밖에는 모두 해가 존재한다.
입력을 vector로 받고, bfs처럼 while(!v.empty())로 간단하게 구현할 수 있다.
<소스코드>
12345678910111213141516171819202122232425262728293031323334353637383940#include<bits/stdc++.h>using namespace std;int n, m;int main(void) {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;vector<int>a(n);int i, j;for (i = 0; i < n; i++)cin >> a[i];sort(a.begin(), a.end(), greater<>());cin >> m;vector<int>b(m);for (i = 0; i < m; i++)cin >> b[i];sort(b.begin(), b.end(), greater<>());if (b[0] > a[0]) {cout << "-1";return 0;}int turn = 0;while (!b.empty()) {turn++;for (i = 0; i < a.size(); i++) {for (j = 0; j < b.size(); j++) {if (a[i] >= b[j]) {b.erase(b.begin() + j);break;}}}}cout << turn;return 0;}cs 'BOJ' 카테고리의 다른 글
[1339] 단어 수학 (0) 2021.09.30 [1541] 잃어버린 괄호 (0) 2021.09.28 [14226] 이모티콘 (0) 2021.09.27 [1254] 팰린드롬 만들기 (0) 2021.09.27 [16197] 두 동전 (0) 2021.09.26