티스토리 뷰
728x90
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) {
List<Integer> answer = new ArrayList<>();
int count = 0;
int startIndex = 0;
while (startIndex < progresses.length) {
while (progresses[startIndex] < 100) {
for(int i = startIndex; i < progresses.length; i++) {
progresses[i] = progresses[i] + speeds[i];
}
}
count = countComp(startIndex, progresses);
startIndex += count;
answer.add(new Integer(count));
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
private static int countComp(int startIndex, int[] progresses) {
int count = 0;
for(int i = startIndex; i < progresses.length; i++) {
if(progresses[i] < 100) {
break;
}else {
count ++;
}
}
return count;
}
}
[ 카운트를 간단화 한 해설 ]
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] dayOfend = new int[100];
int day = 0;
for(int i = 0; i < progresses.length; i++) {
while(progresses[i] + (day * speeds[i]) < 100) {
day ++;
}
dayOfend[day]++;
}
return Arrays.stream(dayOfend).filter(i -> i!=0).toArray();
}
}
[ 큐를 이용한 한 해설 ]
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
Queue<Integer> q = new LinkedList<>();
List<Integer> answerList = new ArrayList<>();
for(int i = 0; i < speeds.length; i++) {
double remain = (100 - progresses[i]) / (double) speeds[i];
int date = (int) Math.ceil(remain);
if(!q.isEmpty() && q.peek() < date) {
answerList.add(q.size());
q.clear();
}
q.offer(date);
}
answerList.add(q.size());
return answerList.stream().mapToInt(Integer::intValue).toArray();
}
}
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 다리를 지나는 트럭 (0) | 2022.06.08 |
---|---|
[프로그래머스] 프린터 (0) | 2022.04.27 |
[프로그래머스] 베스트앨범 (0) | 2022.04.19 |
[프로그래머스] 위장 (0) | 2022.04.01 |
[LeetCode] Valid Palindrome (0) | 2022.03.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크