| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 알고리즘
- 코드스테이츠
- 코딩공부
- 블록체인
- 개발자의 책장
- select
- 개발자_조이킴
- Hackerrank
- node.js
- SQL
- join
- array.slice()
- Programmers
- 역행자
- 코딩테스트
- 최강의 인생
- array
- 코플릿
- Developer_JoyKim
- Where
- 배열
- for문
- 정규표현식
- 재귀함수
- 프로그래머스
- 자바스크립트
- JavaScript
- Algorithms
- array.push()
- MySQL
Archives
- Today
- Total
CodingSpace
프로그래머스#6(Lv.2)_기능개발 본문
기능개발
다른 분들이 하신것 보고 배우고 또 배우자! (map 메소드!)

| // 프로그래머스 - 기능개발 function solution(progresses, speeds) { // 만약 작업의 개수가 0이라면, 빈 배열을 return한다 if(progresses.length === 0) return [] let result = [] // 모든 프로세스가 마무리(100% 이상) 될때까지 while문이 실행된다 while(progresses.length > 0) { // 맨 앞에 프로세스 요소의 진도가 100% 이상 될때까지 while문이 실행된다 while(progresses[0] < 100) { // 진도가 100% 미만이라면, 각 요소의 속도에 맞게 진도를 업데이트 해준다. for(let i = 0; i < progresses.length; i++) { if(!(progresses[i] >= 100)) progresses[i] = progresses[i] + speeds[i] } } // 맨 앞의 요소부터 연속적으로 진도가 100% 이상되는 요소를 세어준다 let cnt = 0 for(let i = 0; i < progresses.length; i++) { if(progresses[i] >= 100) { cnt++ } else break; } // cnt 수만큼 progresses와 speeds 배열의 앞요소를 제거한다 for(let i = 0; i < cnt; i++) { progresses.shift() speeds.shift() } // cnt를 result의 삽입해준다 result.push(cnt) } return result } |
<다른분의 solution>
![]() |
'프로그래머스 > Level2' 카테고리의 다른 글
| JadenCase 문자열 만들기 (0) | 2021.12.27 |
|---|---|
| 프로그래머스#7(Lv.2)_구명보트 (0) | 2021.12.02 |
| 프로그래머스#5(Lv.2)_다리를 지나는 트럭 (0) | 2021.11.25 |
| 프로그래머스#4(Lv.2)_카펫 (0) | 2021.11.24 |
| 프로그래머스#2(Lv.2)_행렬의 곱셈 (0) | 2021.11.23 |
Comments
