프로그래머스 Lv2 기능개발 Java

Android Chen·2021년 11월 5일
0
post-custom-banner

문제설명

https://programmers.co.kr/learn/courses/30/lessons/42586

구현방법

  • 앞에서부터 끝나는 시간에 동시에 완료된 연속된 다른 기능이 있는지 확인하고 카운트하면 된다. 쉬운문제

코드

import java.util.*;
class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        int time = 0;
        int i=0;
        int cnt=0;
        boolean check[] = new boolean[speeds.length];
        Arrays.fill(check,false);
        List<Integer> ans = new ArrayList<>();
        while(i<speeds.length){
            if(!check[i]){
                time = (int)Math.ceil((double)(100-progresses[i])/(double)speeds[i]);
                for(int j=i;j<speeds.length;j++){
                    if(progresses[j]+time*speeds[j]>=100){
                        check[j] = true;
                        cnt++;
                    }
                    else{
                        break;
                    }
                }
                if(cnt!=0){
                    ans.add(cnt);
                }
            }
            cnt=0;
            i++;
        }
        int answer[] = new int[ans.size()];
        for(int j=0;j<ans.size();j++){
            answer[j] = ans.get(j);
        }
        return answer;
    }
}
profile
https://github.com/Userz1-redd
post-custom-banner

0개의 댓글