미팅룸과 비슷하다고 봤었음.
새로운 트럭이 있을경우 +1 초 만큼 증가한다고 생각했음
트럭이 큐에 들어올떄 마다 분기해서, 시간을 추가해주고 나중에 추가시간을 병합해주기로 했었음.
테스트 케이스는 맞았으나 제출 후 많이 실패함.
트럭 클래스를 만들고 while 문을 걸어서 시간을 -1 해서 풀어야하나 생각하고 있음.
import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
Queue<Integer> queue = new PriorityQueue<Integer>(truck_weights.length);
int answer = 1;
int sec = 0;
for(int i=0; i<truck_weights.length; i++) {
if(!queue.isEmpty()) {
if( queue.peek() + truck_weights[i] < weight) {// 4 + 5 < 10
sec += 1;
queue.poll();
queue.offer(truck_weights[i]);
} else {// 7 + 4 > 10 안걸림
queue.poll();
answer += bridge_length; // 가는 시간 만큼 걸림
queue.offer(truck_weights[i]);
}
} else {
queue.offer(truck_weights[i]);
answer += bridge_length ;
}
}
answer += sec;
return answer;
}
}
'막무가내로 삽질하는 알고리즘' 카테고리의 다른 글
PlusOne (0) | 2020.10.25 |
---|---|
KClosest (0) | 2020.10.25 |
LicenseKeyFormatting (0) | 2020.10.18 |
JewelsAndStones (0) | 2020.10.18 |
MeetingRoom2 (0) | 2020.10.18 |