알고리즘 / 기능 개발 / 프로그래머스
문제 : https://programmers.co.kr/learn/courses/30/lessons/42586
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
// 배포 진행도
int progressCount = 0;
// 몇개의 기능이 배포되는지 담을 배열
List<Integer> answer = new ArrayList<>();
while (progresses.length - 1 >= progressCount) {
// 하루 작업 진행
work(progresses, speeds);
// 배포할 기능이 있는지 확인
int deployCount = deploy(progresses, progressCount);
// 기능이 있다면 배포하고 진행도 업데이트
if (deployCount > 0) {
answer.add(deployCount);
progressCount += deployCount;
}
}
// list를 int[] 로 변환
return toArray(answer);
}
private int[] toArray(List<Integer> nums) {
int[] answer = new int[nums.size()];
for (int i = 0; i < nums.size(); i++) {
answer[i] = nums.get(i);
}
return answer;
}
private void work(int[] progresses, int[] speeds) {
for (int i = 0; i < progresses.length; i++) {
progresses[i] = progresses[i] + speeds[i];
}
}
private int deploy(int[] progresses, int progressCount) {
int count = 0;
while (progresses[progressCount] >= 100) {
count += 1;
if (progressCount >= progresses.length - 1) {
return count;
}
progressCount += 1;
}
return count;
}
}
반응형
'알고리즘' 카테고리의 다른 글
알고리즘 / Java / 프로그래머스 - 여행경로 (0) | 2020.09.02 |
---|---|
알고리즘 / Java / 프로그래머스 - 단어 변환 (0) | 2020.09.01 |
알고리즘 / Java / 2020 카카오 블라인드 / 가사 검색 (0) | 2020.08.08 |
알고리즘 / [java] 2020 카카오 블라인드 테스트 / 괄호 변환 (0) | 2020.07.26 |
알고리즘 / [java] 주식가격 / 프로그래머스 (0) | 2020.07.25 |