막무가내로 삽질하는 알고리즘

다리를 지나는 트럭

Jungsoomin :) 2020. 10. 19. 00:09

미팅룸과 비슷하다고 봤었음.

새로운 트럭이 있을경우 +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