Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags
more
Archives
Today
Total
관리 메뉴

forDevLife

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

알고리즘

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

JH_Lucid 2021. 7. 8. 18:31

 

앞의 작업이 다 끝나지 않으면 뒤로 넘어가지 않는 방식이다. for문에서 index를 초기값으로만 계속 해놔서 무한 while에 걸려 오래걸렸다;

암튼 프로그래머스 방식으로 arr에 넣기 위해, arrayList to array를 기억하자.

import org.junit.Test;

import java.util.ArrayList;

public class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        int[] answer;

        int[] copy = progresses;
        int L = progresses.length;
        int idx = 0;
        ArrayList<Integer> arr = new ArrayList<>();

        while(idx < L) {
            int day = 100 - copy[idx];
            int mul = 0;
            int result = 0;
            int dx = idx;
            boolean check = false;

            if(day % speeds[idx] != 0) {
                mul = (day / speeds[idx]) + 1;
            } else
                mul = day / speeds[idx];

            for(int i=idx; i<L; i++) {
                //일단 변경된 날짜로 계산해서 넣기
                copy[i] += mul * speeds[i];

                if(copy[i] < 100) {
                    check = true;
                }
                if(copy[i] >= 100 && !check) {
                    result++;
                    dx++;
                }
            }
            idx = dx;
            arr.add(result);
        }
        answer = convertInteger(arr);

        return answer;
    }

    private int[] convertInteger(ArrayList<Integer> arr) {
        int[] ret = new int[arr.size()];
        for(int i=0; i<ret.length; i++) {
            ret[i] = arr.get(i);
        }
        return ret;
    }

    @Test
    public void 정답() {
        int[] p = {95, 90, 99, 99, 80, 99};
        int[] s = {1, 1, 1, 1, 1, 1};
        solution(p, s);
    }
}

 

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

[프로그래머스] 문자열 압축  (0) 2021.07.09
[프로그래머스] 튜플  (0) 2021.07.08
[프로그래머스] 오픈채팅방  (0) 2021.07.07
[백준] 11286 - 절댓값 힙  (0) 2021.06.30
[백준] 1946 - 신입 사원  (0) 2021.06.29
Comments