본문 바로가기
카테고리 없음

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

by 예옹이 2025. 3. 26.

문제

 


 

1. 기능별 작업일수 계산하기

for (int i = 0; i < progresses.length; i++) {
    int left = 100 - progresses[i];
    int days = left / speeds[i];

    daysArr[i] = (left % speeds[i] == 0) ? days : days + 1;
}

 

2. 배포일 기억해두고, 해당 작업이랑 같이 배포 가능한 작업들 개수 세기

for (int i = 0; i < daysArr.length; i++) {
    if (daysArr[i] <= prevMaxDays) {
        count++;
    } else {
        answer.add(count);
        count = 1;
        prevMaxDays = daysArr[i];
    }
}

 


 

import java.util.*;

class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        int[] daysArr = new int[progresses.length];
        
        for (int i = 0; i < progresses.length; i++) {
            int left = 100 - progresses[i];
            int days = left / speeds[i];
            
            daysArr[i] = (left % speeds[i] == 0) ? days : days + 1;
        }
        
        List<Integer> answer = new ArrayList<>();
        int prevMaxDays = daysArr[0];
        int count = 0;
        
        for (int i = 0; i < daysArr.length; i++) {
            if (daysArr[i] <= prevMaxDays) {
                count++;
            } else {
                answer.add(count);
                count = 1;
                prevMaxDays = daysArr[i];
            }
        }
        
        answer.add(count);
        
        return answer.stream().mapToInt(i -> i).toArray();
    }
}

 

 

제가 푼 다른 코딩테스트 문제들은 이곳에서도 확인 가능합니다!

https://github.com/eonwy/codingTest

 

GitHub - eonwy/codingTest: 🔎 coding-test 🔍

🔎 coding-test 🔍. Contribute to eonwy/codingTest development by creating an account on GitHub.

github.com