Contents
내가 작성한 코드

과일과 바구니라는 두 개의 정수 배열이 주어지는데,
각각의 길이 n은 과일의 i번째 유형의 양을 나타내고,
바구니[j]는 j번째 바구니의 용량을 나타냅니다.
왼쪽에서 오른쪽으로 과일을 다음 규칙에 따라 배치하세요:
* 각 과일 종류는 해당 과일 종류의 양보다 크거나
같은 용량으로 가장 왼쪽에 있는 바구니에 넣어야 합니다.
* 각 바구니에는 한 가지 종류의 과일만 담을 수 있습니다.
* 과일 종류를 바구니에 넣을 수 없는 경우, 그대로 둡니다.
가능한 모든 할당이 완료된 후에도 배치되지 않은 과일 종류의 수를 반환합니다.
제약 사항:
* n == fruits.length == baskets.length
* 1 <= n <= 100
* 1 <= fruits[i], baskets[i] <= 1000
내가 작성한 코드
class Solution {
public int numOfUnplacedFruits(int[] fruits, int[] baskets) {
int n = fruits.length;
boolean[] used = new boolean[n]; // 바구니 사용 여부
int unplaced = 0; // 못 넣은 과일 개수
for (int i = 0; i < n; i++) {
boolean placed = false;
for (int j = 0; j < n; j++) {
// 바구니가 사용 안 되었고, 용량이 과일 수보다 크거나 같으면 사용
if (!used[j] && baskets[j] >= fruits[i]) {
used[j] = true; // 바구니 사용
placed = true; // 배치 성공
break;
}
}
// 과일을 배치하지 못한 경우
if (!placed) {
unplaced++; // 못 넣은 과일 개수 증가
}
}
return unplaced;
}
}
Share article