일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 JS
- websocket
- 디자인 패턴
- useEffect
- react
- vanillaJS
- 컴퓨터 네트워크
- 자바스크립트
- react firebase
- 리액트 훅
- NextJS
- 코딩테스트 고득점 Kit
- codesandbox
- Java
- 자바 공부
- 코틀린
- 코딩테스트 고득점 Kit 완전탐색
- design pattern
- 장고
- JavaScript
- 리액트
- 프로그래머스 완전탐색
- 백준
- 프로그래밍 언어론
- 데이터모델링과마이닝
- 프로그래머스 자바
- 프로그래머스
- react hook
- useState
Archives
- Today
- Total
기록하는 개발자
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 기능개발 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42586?language=javascript
예시1
progresses : [ 93, 30, 55 ] speeds : [ 1, 30, 5 ]
→ 100%를 달성해야하므로 남은 작업량 : [ 7, 70, 45 ]
→ 총 걸리는 작업일 수 = (남은 작업량 / 개발속도)의 반올림 : [ 7, 3, 9 ]
stack
→ top에 위치한 작업일 수 보다 더 오래걸리는 작업이면 stack을 비우고 더 오래걸리는 작업으로 갱신
예시 2
progresses : [95, 90, 99, 99, 80, 99] speeds : [ 1, 1, 1, 1, 1 ]
→ 100%를 달성해야하므로 남은 작업량 : [ 5, 10, 1, 1, 20, 1 ]
→ 총 걸리는 작업일 수 = (남은 작업량 / 개발속도)의 반올림 : [ 5, 10, 1, 1, 20, 1 ]
stack
전체 코드
function solution(progresses, speeds) {
let answer = [];
let workTime = [];
let stack = [];
const len = progresses.length;
for(let i =0; i<len; i++){
workTime.push(Math.ceil((100-progresses[i])/speeds[i]));
}
for(let i =0; i<len; i++){
if(stack[0]<workTime[i]){
answer.push(stack.length);
stack=[workTime[i]];
}
else{
stack.push(workTime[i]);
}
}
answer.push(stack.length);
return answer;
}
728x90
'Algorithm' 카테고리의 다른 글
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 최소직사각형 (0) | 2023.08.10 |
---|---|
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 같은 숫자는 싫어 (0) | 2023.08.09 |
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 여행 경로 (0) | 2023.08.09 |
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 단어 변환 (0) | 2023.08.09 |
[프로그래머스][코딩테스트 고득점 Kit][Javascript] 단속카메라 (0) | 2023.08.08 |