일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- React 공식문서
- React 고급안내서
- background: url
- background setttimeout
- React 18
- React API 참고서
- Render Props
- react hook
- React18
- Nextjs
- 고급안내서
- hook
- Babel
- Javascript
- background setInterval
- Next13
- RTK Query
- getUTCDate
- Nextjs React 18
- next13 head
- React 18 Nextjs
- codingtest
- Programmers
- context
- CSS
- React 고급 안내서
- react-helmet
- react
- notFound()
- background tab
Archives
- Today
- Total
akjfal
프로그래머스 42583번 java 본문
Programmers 코딩테스트 level 2 - 42583번 다리를 지나는 트럭
java로 작성했습니다.
생각한 점
1. 다리에 현재 올라와있는 queue와 트럭이 대기중인 queue사용
2. 틱마다 다리에 트럭이 올라갈수있는지 없는지 체크해 대기중인 queue의 길이만큼 for문을 돌림
static public int solution(int bridge_length, int weight, int[] truck_weights) {
int answer = 0;
int line_weight = 0;
int length = truck_weights.length;
Integer[] tmp_bridge = new Integer[bridge_length];
Arrays.fill(tmp_bridge, 0);
// 다리를 지나갈 트럭이 대기하는 queue
Queue<Integer> queue = new LinkedList<>();
// 현재 다리에 트럭이 지나가는 queue
Queue<Integer> queue_bridge = new LinkedList<>(Arrays.asList(tmp_bridge));
for(int i = 0 ; i < truck_weights.length; i++){
queue.add(truck_weights[i]);
}
for (int i = 0; i < length; i++) {
// 트럭 한대가 들어갈 수 있을때까지 while문을 실행해줍니다.
while (true) {
answer++;
// 시간이 지났으므로 다리하중에서 1틱이 지났을때 빠지는 무게만큼 빼줍니다.
line_weight -= queue_bridge.poll();
// 현재 다리가 견디는 하중 + 다음 트럭 무게 <= 다리가 견딜수 있는 하중
// 만약 true라면 다리로 트럭이 진입합니다.
if (line_weight + queue.peek() <= weight) {
int add_num = queue.poll();
queue_bridge.add(add_num);
line_weight += add_num;
// 트럭이 진입하면 break
break;
// false라면 0을 쌓아줍니다.
} else {
queue_bridge.add(0);
}
}
}
//last truck out time
answer += bridge_length;
return answer;
}
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 괄호 회전하기 (0) | 2021.06.17 |
---|---|
[Programmers] 예상 대진표도움말 (0) | 2021.06.16 |
[Programmers] 게임 맵 최단거리 (0) | 2021.06.16 |
프로그래머스 68645번 java (0) | 2021.01.14 |
프로그래머스 1829번 java (0) | 2021.01.14 |
Comments