프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
1. queue 활용 ( 선입선출 )
2. queue를 다리라고 생각하며 아래 상황을 고려
- 다리가 비어있으면
- 다리가 꽉차있으면
- 다리에 트럭이 있을때 ( 꽉 차지 않음 ) 무게가 초과하는지 안하는지







나의풀이 ( 코드 )
import java.util.*;
class Solution {
public int solution(int bridge_length, int weight, int[] truck_weights) {
int answer = 0;
int sumWeight = 0;
int currentTruck = 0;
Queue<Integer> queue = new LinkedList<>();
for (int i : truck_weights) {
currentTruck = i;
while (true) {
if (queue.isEmpty()) { // 다리에 트럭이 없으면 트럭 추가
queue.add(currentTruck);
sumWeight += currentTruck;
answer++;
break;
} else if (queue.size() == bridge_length) { // 다리에 트럭이 꽉차있으면
sumWeight -= queue.poll();
} else { // 트럭이 다리에 진입하기위해 무게 비교
if (sumWeight + currentTruck > weight) { // 무게 초과면
queue.add(0);
answer++;
}else{ // 트럭이 다리에 진입이 가능하면
queue.add(i);
sumWeight += i;
answer++;
break;
}
}
}
}
answer += bridge_length;
return answer;
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] 가장 많이 받은 선물 (4) | 2024.01.09 |
|---|---|
| [프로그래머스/JAVA 자바] 소수 찾기 (0) | 2023.12.12 |
| [프로그래머스/JAVA 자바] 가장 큰 수 (0) | 2023.12.05 |
| [프로그래머스/JAVA 자바] 쿼드압축 후 개수 세기 (0) | 2023.12.04 |
| [프로그래머스/JAVA 자바] 2개 이하로 다른 비트 (3) | 2023.12.01 |