https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(progresses, speeds) {
let workingDays = 0; // 일하는데 걸리는 날의 수
let workFinishTime = []; // 일하는데 걸리는 날의 수의 집합
for (let i=0; i<speeds.length; i++){
workingDays = Math.ceil((100-progresses[i])/speeds[i]);
workFinishTime.push(workingDays)
}
// 일하는 데 걸리는 날의 수를 센다.
// workFinishTime = [ 5, 10, 1, 1, 20, 1 ]
let releaseDate = []
for (let day = 0; day<workFinishTime.length; day++){
if (workFinishTime[day] >= workFinishTime[day+1]) {
if (day !== workFinishTime.length - 1){
workFinishTime[day + 1] = workFinishTime[day]
}
}
}
// 배포하는 데 걸리는 날의 수로 바꿔본다.
// workingFinishTime = [ 5, 10, 10, 10, 20, 20 ]
let count = 1;
let answer = [];
for (j=0; j<workFinishTime.length; j++){
if (workFinishTime[j] == workFinishTime[j+1]){
count ++
} else if (workFinishTime[j] != workFinishTime[j+1]){
answer.push(count)
count = 1;
}
}
// 카운트 1로 시작해서, 다음 원소가 같다면 count ++ 하고,
// 다음 원소가 다르다면 answer에 그간의 count를 push 하고 count를 초기화한다.
return answer;
}
'코딩테스트 > LV. 2' 카테고리의 다른 글
LV.2 :: 주식 가격 (0) | 2024.10.21 |
---|---|
LV.2 :: n^2 배열 자르기 (0) | 2024.10.21 |
LV.2 :: 예상 대진표 (0) | 2024.10.21 |
LV.2 :: 멀리 뛰기 (0) | 2024.10.21 |
LV.2 :: 영어 끝말잇기 (0) | 2024.10.21 |
댓글