문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42586
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
문제 설명 및 예시 :
코드 :
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
ArrayList<Integer> answerList = new ArrayList<>();
Queue<Integer> q = new LinkedList<Integer>();
for(int i =0; i<progresses.length;i++)
{
int day = 0 ;
while(progresses[i] <100)
{
progresses[i] += speeds[i];
day++;
}
q.offer(day);
}
// for(int i : q)
// {
// System.out.println(i);
// }
while(true)
{
if(q.isEmpty()) // q가 비어있으면 멈춘다.
{
break;
}
int count = 0 ;
int tmp = q.peek(); // tmp에 현재의 q 제일 처음 값을 넣는다.
// System.out.println(tmp);
try {
while (tmp >=q.peek())
{
q.poll();
count++;
// System.out.println(count);
}
answerList.add(count);
}catch (NullPointerException e) {
// System.out.println(count);
answerList.add(count); // q 가 null이 발생하면서 멈추기 직전 현재 count 값을 list에 넣는다.
break;
}
}
answer = new int[answerList.size()];
for(int i =0; i<answerList.size();i++)
{
answer[i]=answerList.get(i);
}
return answer;
}
}
결과 :
멀쩡한 사각형 (0) | 2020.11.05 |
---|---|
[1차] 다트 게임 (0) | 2020.11.02 |
실패율 (0) | 2020.11.02 |
[1차] 비밀지도 (0) | 2020.10.21 |
예산 (0) | 2020.10.21 |
댓글 영역