문제 설명
문제 링크
[프로그래머스[Level2] 기능개발]
(https://school.programmers.co.kr/learn/courses/30/lessons/42586)
접근 방법
- success 배열을 만들어 배포가 이루어지는 일수 저장해주기 => success배열을 탐색하며 기준잡은 success[standard]보다 큰수가 나오기 전까지 cnt값을 ++해줘 기준보다 큰 수가 나올경우 answer에 푸시하기
코드
function solution(progresses, speeds) {
var answer = [];
let cnt =1; //cnt는 앞 뒤 원소 비교후 앞의 원소가 다음으로 오는 원소보다 작을 때까지 ++
let success = []; // success에 (100-progresses)/speeds = ?(일간 작업 후 배포가 가능한지에 대한 저장소)
for(let i = 0,standard = 0;i<progresses.length;++i){
success[i]= Math.ceil((100-progresses[i])/speeds[i]);
if(success[standard]>=success[i]&& i!==0) cnt++; //i!==0 을 해준 이유는 0번째 원소가 기준되어 시작하기 때문에
else if(success[standard]<success[i]&&i!==0){
standard = i; //standard를 i번째 인덱스로 바꿔주고
answer.push(cnt); //그동안 count 된 값 : cnt 를 answer에 push해주기
cnt = 1; // 다시 같은 것을 반복해주기 위해 1로 초기화
}
}
answer.push(cnt);
return answer;
}
'알고리즘문제풀이' 카테고리의 다른 글
프로그래머스[Level2] 조이스틱 - JavaScript (0) | 2023.04.19 |
---|---|
프로그래머스[Level2] 큰수 만들기 -Javascript (0) | 2023.04.19 |
프로그래머스[Level1] 크기가 작은 부분 문자열 -Javascript (0) | 2023.04.19 |
프로그래머스[Level1] 가장 가까운 같은 글자 -Javascript (0) | 2023.04.19 |
프로그래머스[Level1] 숫자 문자열과 영단어 - JavaScript (0) | 2023.04.19 |