개발자 첫걸음/프로그래머스
프로그래머스 [level2] 기능개발
프로아마추어
2021. 12. 21. 11:37
https://programmers.co.kr/learn/courses/30/lessons/42586?language=java
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
<문제>
<나의 풀이>
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
for(int i=0;i<progresses.length;i++) {
int check = 100-progresses[i];
progresses[i] = (int)Math.ceil(((double)check/speeds[i])); // 반올림처리
}
int cnt=1;
int temp=progresses[0];
for(int i=0;i<progresses.length-1;i++) {
if(temp>=progresses[i+1]) { // 배포일이 크거나 같을 때
cnt++;
} else if(temp<progresses[i+1]){
list.add(cnt);
cnt=1;
temp=progresses[i+1];
}
if(i==progresses.length-2) {
list.add(cnt);
}
}
cnt=0;
answer = new int[list.size()];
for(int i:list) {
answer[cnt]=i;
cnt++;
}
return answer;
}
}
스택/ 큐를 어떻게 응용할 지 몰라 배열로 문제를 풀었다... 처음에 반올림처리, 배포일이 같은 경우를 고려하지 않아 에러가 발생했었다.
<제출결과>
<큐를 사용한 다른 사람의 풀이>