티스토리 뷰
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/42583
2. 설명
리스트사용해서 풀었다!
리스트 대신 큐 사용해도 될 것같다.
3. 코드
import java.util.ArrayList;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
int answer = 0;
ArrayList<Truck> onBridge = new ArrayList<>();
int currTruck = 0; // 현재 트럭 번호
int overTruck = 0; // 다리를 지난 트럭 수
int currWeight = 0; // 현재 다리 위 무게
while(overTruck < truck_weights.length) {
if(onBridge.size() > 0 && answer - onBridge.get(0).enterTime == bridge_length) {
currWeight -= onBridge.get(0).weight;
onBridge.remove(0);
overTruck++;
}
if(currTruck < truck_weights.length) {
if(currWeight+truck_weights[currTruck] <= weight) {
onBridge.add(new Truck(truck_weights[currTruck],answer));
currWeight += truck_weights[currTruck];
currTruck++;
}
}
answer++;
}
return answer;
}
static class Truck {
public int weight;
public int enterTime;
private Truck(int weight, int enterTime) {
this.weight = weight;
this.enterTime = enterTime;
}
}
}
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 더 맵게 JAVA (0) | 2020.06.29 |
---|---|
프로그래머스 큰 수 만들기 JAVA (0) | 2020.06.26 |
프로그래머스 짝지어 제거하기 JAVA (0) | 2020.06.18 |
프로그래머스 정수 삼각형 JAVA (0) | 2020.06.17 |
프로그래머스 타일 장식물 JAVA (피보나치수열, DP) (0) | 2020.06.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday