- 생각
1. 내림차순으로 하나씩 체크하면서 뺴주려했는데 잘 안됌 - 정렬
2. 내림차순으로 하나씩 체크하면서 빼주려했는데 잘 됌 - arraylist
- 코드
정답 코드 : arraylist를 이용해 내림차순 정렬 후 하나씩 빼준다. box를 N개 빼면 날짜를 1일씩 증가시켜줌
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static ArrayList<Integer> crain, box;
public static void main(String[] args) throws Exception {
SetData();
System.out.println(FindMixValue());
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
N = Integer.parseInt(br.readLine());
crain = new ArrayList<>();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++)
crain.add(Integer.parseInt(st.nextToken()));
M = Integer.parseInt(br.readLine());
box = new ArrayList<>();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++)
box.add(Integer.parseInt(st.nextToken()));
Collections.sort(crain, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
Collections.sort(box, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
}
private static int FindMixValue() {
int count = 0; // 걸린 시간
// 가장 무거운 박스의 무게 > 크레인 최대 중량일 경우
if (box.get(0) > crain.get(0))
return -1;
while (box.size() != 0) {
int crainIndex = 0, boxIndex = 0;
while (crainIndex < N) {
if (boxIndex == box.size())
break;
// 현재 크레인 index 크기로 박스 index를 옮길 수 있으면
if (box.get(boxIndex) <= crain.get(crainIndex)) {
box.remove(boxIndex);
crainIndex++;
} else if (box.get(boxIndex) > crain.get(crainIndex)) {
boxIndex++;
}
}
count++;
}
return count;
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 13164번 : 행복 유치원 (0) | 2020.11.24 |
---|---|
[JAVA] 백준 14442번 : 벽 부수고 이동하기 2 (0) | 2020.11.23 |
[JAVA] 백준 1676번 : 팩토리얼 0의 개수 (0) | 2020.11.20 |
[JAVA] 백준 2407번 : 조합 (0) | 2020.11.20 |
[JAVA] 백준 14650번 : 걷다보니 신천역 삼 (Small) (0) | 2020.11.19 |