프로그래머스: 기능개발

공룡개발자·2022년 3월 29일
0
post-custom-banner

✍ 나의 풀이

function solution(progresses, speeds) {
    let rest = progresses.map(v => 100 - v)
    let day = rest.map((v, i) => Math.ceil(v / speeds[i]))
	// 아래처럼 축소가능,,
    // day = progresses.map((v, i) => Math.ceil((100 - v) / speeds[i]))
    
    let answer = []
    let count = 1
    let prev = day[0]

    for(let i = 1; i < day.length; i++){
        if(day[i] <= prev){
            count++
        } else {
            answer.push(count)
            prev = day[i]
            count = 1
        }  
    }
    answer.push(count)

    return answer
}
  • 100과 profresses의 각 요소의 차를 rest라는 배열에 할당
  • rest의 각 요소에 대응되는 speeds의 요소를 나눠준 후, 절대올림을 통해 도출된 소요기간을 day라는 배열에 할당
  • 배열 day의 첫요소를 prev 변수에 할당하여, 순차적으로 비교
  • 마지막 인덱스 요소의 count는 for문이 끝난 시점에 push
profile
공룡의 발자취
post-custom-banner

0개의 댓글