Algorithm

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μŠ€νƒ/큐 Lv2 <κΈ°λŠ₯개발> JAVA

seulye 2021. 8. 23. 21:56

 

μ•Œκ³ λ¦¬μ¦˜ μ§œλŠ”κ±΄ μ–Όλ§ˆ μ•ˆ κ±Έλ ΈλŠ”λ°,

μ˜€λžœλ§Œμ— μ•Œκ³ λ¦¬μ¦˜ ν’€λ‹€λ³΄λ‹ˆκΉŒ μžλ£Œν˜• λ‹€λ£¨λŠ” 게 μ΅μˆ™ν•˜μ§€ μ•Šμ•„μ„œ 였래 κ±Έλ¦° 것 κ°™λ‹€.

 

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

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - κΈ°λŠ₯개발

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ νŒ€μ—μ„œλŠ” κΈ°λŠ₯ κ°œμ„  μž‘μ—…μ„ μˆ˜ν–‰ μ€‘μž…λ‹ˆλ‹€. 각 κΈ°λŠ₯은 진도가 100%일 λ•Œ μ„œλΉ„μŠ€μ— λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 또, 각 κΈ°λŠ₯의 κ°œλ°œμ†λ„λŠ” λͺ¨λ‘ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 뒀에 μžˆλŠ” κΈ°λŠ₯이 μ•žμ— μžˆλŠ”

programmers.co.kr

 

 

import java.lang.Math;
import java.util.ArrayList;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        ArrayList<Integer> list = new ArrayList<>();
        int length = progresses.length;
        int[] days = new int[length];
        int[] answer = {};
        double d;
        int a=0; //days 인덱슀
        int count; //ν•œ λ²ˆμ— 배포 κ°€λŠ₯ν•œ κΈ°λŠ₯수
        int b; 
        
        //μ™„μ„±κΉŒμ§€ κ±Έλ¦¬λŠ” 일수 계산
        for(int i=0;i<length;i++){
            d = (double)(100-progresses[i])/speeds[i]; 
            d = Math.ceil(d);
            days[i]=(int)d;
        }

        while (a<length){
            count=1;
            if(a==length-1){ //λ§ˆμ§€λ§‰ 인덱슀일 경우
                list.add(c);
                break;
            }
            for(b=1;b<length-a;b++){
                if(days[a]>=days[a+b]){
                    count++;
                }
                else{
                    break;
                }                
            }
            a=a+b;
            list.add(count);
            
        }
        answer = list.stream().mapToInt(i ->i).toArray();
        return answer;
    }
}

 

μžλ°”μ˜ 배열은 add κΈ°λŠ₯이 μ—†μ–΄μ„œ 그런 κΈ°λŠ₯을 κ°–λŠ” μžλ£Œν˜•μ΄ 뭐가 μžˆμ„κΉŒ ν•˜λ‹€κ°€ 찾은 ArrayList.

(μˆœκ°„ 파이썬의 배열이 정말 그리웠닀) 근데 또 ArrayListλ₯Ό intλ°°μ—΄λ‘œ λ³€ν™˜ν•΄μ•Όν•΄μ„œ.. κ±°κΈ°μ„œ λ§‰ν˜”λ˜ 것 κ°™λ‹€.

 

 

1. μ˜¬λ¦Όν•˜λŠ” ν•¨μˆ˜

2. ArrayList μ‚¬μš©

3. ArrayList -> Array

 

μ΄κ²ƒλ§Œ 잘 μ•Œμ•˜λ‹€λ©΄ 훨씬 μ‰½κ²Œ ν’€ 수 μžˆμ—ˆμ„ 것 κ°™λ‹€ !