Lewis's Tech Keep

[프로그래머스] 기능개발 본문

JAVA/알고리즘

[프로그래머스] 기능개발

Lewis Seo 2021. 1. 22. 01:30

스택을 이용해서 풀어야 했는데 아직 익숙하지 않아 배열로 끝내버렸다.

 

스택으로 연습할 것

 

더보기
import java.util.*;
class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        List<Integer> answerList = new ArrayList<>();
        List<Integer> progressesList = new ArrayList<>();
        List<Integer> speedsList = new ArrayList<>();
        int currentProgresses = 0;
        int complete = 100;
        for(int i : progresses) {
            progressesList.add(i);
        }
        for(int i : speeds) {
            speedsList.add(i);
        }
        while(progressesList.size() > 0) {
            for(int i =0; i<progressesList.size();i++) {
                int newProgress = progressesList.get(i) + speedsList.get(i);
                progressesList.set(i, newProgress);
            }
            
            int currentCompletedCount = 0;
            for(int i =0; i<progressesList.size();i++) {
                if(progressesList.get(i) >= complete) {
                    progressesList.remove(i);
                    speedsList.remove(i);
                    i--;
                    currentCompletedCount++;
                } else {
                    break;
                }
            }
            // System.out.println(progressesList);
            if(currentCompletedCount > 0) {
                answerList.add(currentCompletedCount);
            }
            currentProgresses++;
        }
        int[] answer = new int[answerList.size()];
        for(int i =0; i < answerList.size(); i++) {
            answer[i] = answerList.get(i);
        }
        return answer;
    }
}

'JAVA > 알고리즘' 카테고리의 다른 글

[프로그래머스] 타겟 넘버  (0) 2021.01.28
[프로그래머스] 오답 - 디스크 컨트롤러  (0) 2021.01.27
[프로그래머스] 주식가격  (0) 2021.01.21
[General] 캐싱에 관해  (0) 2021.01.12
[로직] 숫자야구겜  (0) 2021.01.06
Comments