-
[백준]1092: 배 - JAVA문제풀이/백준 2021. 4. 30. 19:43
[백준]1092: 배
풀이
크레인이 무게 제한과 박스의 무게를 arraylist로 받았다. 그 다음 내림차순 정렬을 한 후 박스를 차례대로 하나씩 처리해 주었다.
현재 크레인에 박스를 담을 수 있다면 담았다고 생각하고 박스를 제거해 주었다. 현재 박스를 담을 수 없다면 다음 박스를 확인하며 담을 수 있는 박스를 찾아 제거해 주었다.
만약 제일 무거운 박스가 크레인의 무게 제한으로 인해 어떤 크레인으로도 박스를 옮길 수 없다면 -1을 출력해 주었다.
그리디한 정렬 문제로 어렵지 않은 수준이었다!
코드
123456789101112131415161718192021222324252627282930313233343536373839404142import java.util.*;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n = scan.nextInt();ArrayList<Integer> crane = new ArrayList<>();for(int i = 0; i < n; i++) {crane.add(scan.nextInt());}Collections.sort(crane, Collections.reverseOrder());int m = scan.nextInt();ArrayList<Integer> box = new ArrayList<>();for(int i = 0; i < m; i++) {box.add(scan.nextInt());}Collections.sort(box, Collections.reverseOrder());if(crane.get(0) < box.get(0)) System.out.println("-1");else {int time = 0;while(!box.isEmpty()) {int idx = 0;for(int i = 0; i < crane.size();) {if(idx == box.size()) break;else if(crane.get(i) >= box.get(idx)) {box.remove(idx);i++;}else idx++;}time++;}System.out.println(time);}}}cs '문제풀이 > 백준' 카테고리의 다른 글
[백준]2660: 회장뽑기 - JAVA (0) 2021.05.01 [백준]2493: 탑 - JAVA (0) 2021.05.01 [백준]2056: 작업 - JAVA (0) 2021.04.30 [백준]10282: 해킹 - JAVA (0) 2021.04.29 [백준]4358: 생태학 - JAVA (0) 2021.04.29