문제
https://programmers.co.kr/learn/courses/30/lessons/42586?language=javascript
코드
function solution(progresses, speeds) {
var answer = [];
let day = []
for (let i=0; i<progresses.length; i++) {
day[i] = Math.ceil((100 - progresses[i]) / speeds[i])
}
for (let i=0; i<day.length; i++) {
let count = 1
for (let j=i+1; j<day.length+1; j++) {
if (day[i] >= day[j]) {
count += 1
} else {
answer.push(count)
i += count-1
break
}
}
}
return answer;
}
다른 코드
function solution(progresses, speeds) {
let answer = [0];
let days = progresses.map((progress, index) => Math.ceil((100 - progress) / speeds[index]));
let maxDay = days[0];
for(let i = 0, j = 0; i< days.length; i++){
if(days[i] <= maxDay) {
answer[j] += 1;
} else {
maxDay = days[i];
answer[++j] = 1;
}
}
return answer;
}
나는 for문을 이용해 day배열에 값을 넣었다면 이 코드는 map함수를 활용하였다.
자바스크립트에서 map 함수를 이용하는 것도 참고하면 좋을 것 같다!
'⏳ 알고리즘 > JavaScript 알고리즘' 카테고리의 다른 글
프로그래머스 - LV2. 오픈채팅방(카카오 2019 블라인드 채용) (0) | 2021.07.04 |
---|---|
프로그래머스 - LV2. 이진 변환 반복하기(월간 코드 챌린지 시즌1) (0) | 2021.06.28 |
프로그래머스 - LV2. 짝지어 제거하기(2017 팁스타운) (0) | 2021.06.21 |
프로그래머스 - LV1. 키패드 누르기(카카오 2020 인턴쉽) (0) | 2021.06.21 |
프로그래머스 - LV1. 신규 아이디 추천(카카오 2021 블라인드 채용) (0) | 2021.06.21 |