2022년 12월 27일 화요일 - 3일만에 출근... 힘드러...
오늘 올려볼 문제는 2279번 Maximum Bags With Full Capacity of Rocks 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
생각해보니 더 효율적으로 짤 수 있었다
입력
사진에서도 볼 수 있듯이 int 배열 2개와 int 값 1개가 입력으로 들어온다.
풀이 및 코드
주어진 가방들에 돌을 담을 수 있는 개수와 돌이 담겨져 있는 개수가 있다.
이 때 추가적인 돌 n개가 있을 때 이를 배분하여 담았을 때 가장 많은 꽉 채워진 가방을 구하라는 문제이다.
오늘은 처음부터 정답을 생각해냈다.
가방의 용량과 가방에 든 돌의 개수의 차이를 구하여 차이가 작은 것부터 채워나가는 방식으로 문제를 풀었다.
이제 코드를 봐보자!
풀이코드
class Solution {
public int maximumBags(int[] capacity, int[] rocks, int additionalRocks) {
var pq = new PriorityQueue<Integer>();
int result = 0;
for(int i = 0; i < rocks.length; i++) pq.add(capacity[i] - rocks[i]);
while(!pq.isEmpty()) {
additionalRocks -= pq.poll();
if(additionalRocks < 0) break;
result++;
}
return result;
}
}
제출 화면
생각해보니 그냥 pq를 사용하지 않고 정렬 한 번 하는게 훨씬 더 효율적이었을 것이다.
하지만 처음 푼건 이렇게 푼 것이므로... 머리에 잘 기억해두는 것으로 만족해야겠다.
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.
'LeetCode 문제 풀이' 카테고리의 다른 글
[LeetCode] 290번 Word Pattern 문제를 풀어보았다. (ft. java) (0) | 2023.01.01 |
---|---|
[LeetCode] 797번 All Paths From Source to Target 문제를 풀어보았다. (ft. java) (0) | 2022.12.30 |
[LeetCode] 55번 Jump Game 문제를 풀어보았다. (ft. java) (0) | 2022.12.26 |
[LeetCode] 2389번 Longest Subsequence With Limited Sum 문제를 풀어보았다. (ft. java) (0) | 2022.12.25 |
[LeetCode] 739번 Daily Temperatures 문제를 풀어보았다. (ft. java) (0) | 2022.12.18 |