자료구조&알고리즘/코딩테스트

기능개발(프로그래머스, JavaScript)

밍풀 2023. 1. 23. 01:28
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//다른이의 풀이
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;
}
 
 
//나의풀이
function solution(progresses, speeds) {
    let answer = [];
    let count=0;
 while(progresses.length>0){
 
    let t = Math.ceil((100-progresses[0])/speeds[0]); 
    progresses=progresses.map((x,index)=>x+speeds[index]*t);
 
 
    for(let i=0;i<progresses.length;i++){
        if(progresses[i]>=100){
            count++;
        }else break;
    }
    answer.push(count);
 
    for(let i=0;i<count;i++){
        progresses.shift();
        speeds.shift();
    }
    count=0;
}
return answer;
}
 
cs