반응형
TIL
- 변동이 있는 변수/크기 변동이 있는 오브젝트를 반복문의 조건문으로 사용하지 말기
ex) 아래처럼 poll하면서 size가 계속 작아지는데 이게 반복문 횟수의 기준이다..? -> 안됨
for( int i = 0; i < giftMax.size() ; i++){
int pollNum = giftMax.poll();
sum += pollNum;
}
- ** Array -> Length, ArrayList, Queue -> size()**
코드
import java.util.*;
class Solution {
public long pickGifts(int[] gifts, int k) {
long sum = 0;
PriorityQueue<Integer> giftMax = new PriorityQueue<>((o1, o2) -> o2 - o1 );
for( int i = 0; i < gifts.length ; i++){
giftMax.offer(gifts[i]);
}
for( int i = 0; i < k ; i++){
int maxGift = giftMax.poll();
if(maxGift > 1){
int remainGift = (int)Math.sqrt(maxGift);
giftMax.offer(remainGift);
}else{
giftMax.offer(1);
}
}
int giftMaxSize = giftMax.size();
while (!giftMax.isEmpty()) {
int pollNum = giftMax.poll(); // 가장 큰 선물 하나씩 꺼냄
sum += pollNum; // sum에 더함
}
return sum;
}
}
반응형
'Java' 카테고리의 다른 글
[java] 특정 문자열에 문자 존재 여부 확인 함수 (0) | 2024.11.30 |
---|---|
[백준] 센티와 마법의 뿅망치 성공 (0) | 2024.11.17 |
[java] 최대힙, 최소힙 (0) | 2024.11.15 |
[java] type 변경 함수 정리 (1) | 2024.11.15 |
[백준] 식당 입구 대기 줄 성공 (1) | 2024.11.14 |