λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개발/자료ꡬ쑰 & μ•Œκ³ λ¦¬μ¦˜

κΈ°λŠ₯개발 (Java)

by 1mj 2021. 11. 12.

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

 

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

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

programmers.co.kr

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ 고득점 Kit κΈ°λŠ₯개발 문제 풀이이닀.

 

리슀트만 μ΄μš©ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ ν’€μ–΄λ³΄μ•˜λŠ”λ°, λ‹€λ₯Έ μ‚¬λžŒλ“€ 풀이λ₯Ό μ°Έμ‘°ν–ˆμ„ λ•Œ μ•ž μž‘μ—…μ΄ λλ‚˜λŠ” λ‚ μ§œλ₯Ό 미리 λΉ„κ΅ν•˜μ—¬ ν•„μš”ν•œ κ²ƒλ§Œ 큐에 λ„£μ–΄μ£ΌλŠ” 방식이 κΉ”λ”ν•΄λ³΄μ˜€λ‹€.

 

import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        // μž‘μ—…μ΄ λλ‚˜κΈ°κΉŒμ§€ 남은 일수 κ΅¬ν•˜κΈ°
        List<Integer> left = new ArrayList<>();
        for (int i = 0; i < progresses.length; i++) {
            left.add((int) Math.ceil((100 - progresses[i]) / (double) speeds[i]));
        }
        
        // μ•žμ— μž‘μ—…μ΄ λλ‚˜λŠ” λ‚ μ§œ ν™•μΈν•˜κΈ°
        List<Integer> answer = new ArrayList<>();
        int first = left.get(0);
        int cnt = 1;
        for (int i = 1; i < left.size(); i++) {
            int l = left.get(i);
            if (l <= first) {
                cnt ++;
            } else {
                answer.add(cnt);
                cnt = 1;
                first = l;
            }
            if (i == left.size() - 1) {
                answer.add(cnt);
            }
        }
        
        return answer.stream().mapToInt(i -> i).toArray();
    }
}

 

λŒ“κΈ€