Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- js 문자열 압축
- suspense 비동기
- suspense 병목현상
- next13 emotion
- suspense react-query
- 카카오 코테
- js 거리두기 확인하기
- 구름톤 챌린지 회고
- js 스코프
- 프로그래머스 문자열 압축
- 자바스크립트 문자열 압축
- js
- 프로그래머스 거리두기 확인하기
- 백준 2108 nodejs
- 백준 2108 자바스크립트
- 리액트쿼리 suspense
- 백준 1339번 nodejs
- emotion RSC
- 백준 1339번 js
- app router emotion
- suspense 동작원리
- 백준 1339번 자바스크립트
- 자바스크립트 스코프
- 스코프
- 구름톤 챌린지
- 옵셔널체이닝
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- 사용성 개선
- emtion app router
- 구름톤
Archives
- Today
- Total
Lennon FE
[프로그래머스] 다리를 지나는 트럭 (js) 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/42583?language=javascript
function solution(bridge_length, weight, truck_weights) {
truck_weights = truck_weights.map((v) => [v, 0]);
const passingTruck = [];
const passedTruck = [];
const len = truck_weights.length;
let count = 1;
while (passedTruck.length !== len) {
count++;
if (truck_weights.length > 0) {
passingTruck.push(truck_weights.shift());
}
const truckWeight = passingTruck.reduce((prev, cur) => prev + cur[0], 0);
if (truckWeight > weight) {
truck_weights.unshift(passingTruck.pop());
}
passingTruck.map((v) => v[1]++);
if (passingTruck[0][1] === bridge_length) {
passedTruck.push(passingTruck.shift());
}
}
return count;
}
truck_weights [7,4,5,6]을 [ [7,0], [4,0], [5,0], [6,0] ] 형태로 바꾼다.
passingTruck
지나가는 트럭을 넣는 배열
passedTruck
트럭이 지나가면 넣는 배열
count
시간을 재는 변수
while 내부 로직
count는 계속 1씩 더해준다.
1. truck_weights 배열의 길이가 0이 아니면 truck_weight 입력 배열에서 shift 하여 passingTruck에 push 한다.
2. passingTruck의 들어가 있는 트럭들의 무게(truckWeight)를 구한다.
3. truckWeight가 weight를 넘으면 passingTruck 배열에서 pop을 하고, 그 값을 다시 truck_weights 배열에 넣는다.
4. passingTruck 배열의 모든 인덱스를 순회하며 [1] 값에 1씩 더한다. ex) [7, 0] => [7, 1]
5. 순서대로 들어오므로 passingTruck[0][1] 값이 bridge_length값이 되면
passingTruck에서 shift 하며 그 값을 passedTruck에 push 한다.
6. passedTruck의 배열 길이가 처음 제공된 truck_weights 길이가 되면 while문을 종료한다.
728x90
반응형
'🔥 Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 피로도 - 자바스크립트(js) (0) | 2022.03.14 |
---|---|
[프로그래머스 Lv.3] 입국심사 (0) | 2022.03.01 |
[프로그래머스 Lv.3] 이중우선순위큐 (js) (0) | 2022.02.03 |
[프로그래머스 Lv.3] 불량 사용자 (js) (0) | 2022.02.03 |
[프로그래머스 Lv.3] 단속 카메라 (js) (0) | 2022.01.30 |
Comments