https://school.programmers.co.kr/learn/courses/30/lessons/42586
조건
제한 시간 45분
45분 이내에 풀지 못했다.
30분 전에 일단 문제를 풀긴 했지만, 계속해서 '맞왜틀 ' 루프에 빠져서 시간만 까먹다가 끝났다...
로직 설계를 잘했는데, 문제를 꼼꼼하게 읽지 않아, 로직 빈틈이 생겼었다.
기능이 앞에 있는 기능보다 먼저 개발될 수 있을 때, 기능 앞에 있는 기능 배포될 때 함께 배포된다는 이 말을
무조건 뒤에 있는 작업 수행 시간(초)를 비교를 해줘서 틀렸다...
ex)
각 작업 수행하기 위한 시간이 아래와 같을 때
[맞는 로직]
7 3 4 9 일 시, idx 2에 있는 수행시간 4초 걸린 작업일 경우, 이렇게 비교를 해줘야했는데
7, 3, 4 (3)
9 (1)
['맞왜틀' 로직]
7 3 4 9 일 시, 전에 있는 수행시간과 비교를 해줘서 계속 틀렸다...
7, 3 (2)
4(1)
9(1)
/*
제한시간 : 45분
*/
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
Queue<Integer> workingDays = new LinkedList<>();
// 작업 진도 각 프로세스 에 맞게
for (int i = 0; i < progresses.length; i++) {
int percent = progresses[i];
int days = 0;
while(100 > percent) {
percent += speeds[i];
days++;
}
workingDays.add(days);
}
ArrayList<Integer> list = new ArrayList<>();
int pre = 100;
int count = 0;
while(!workingDays.isEmpty()) {
int tmp = workingDays.poll();
if(pre >= tmp) {
count++;
}else {
list.add(count);
count = 1;
}
pre = tmp;
if(workingDays.isEmpty()) {
break;
}
}
list.add(count);
int[] answer = new int[list.size()];
int idx = 0;
for (int i : list) {
answer[idx++] = i;
}
return answer;
}
}
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 *Java] - 가장 큰 수 (순열로 접근x -> 런타임 에러 발생) (0) | 2022.07.09 |
---|---|
[프로그래머스 *Java] - 더 맵게 (0) | 2022.07.07 |
[프로그래머스 *Java] - 124 나라의 숫자 (0) | 2022.07.04 |
[프로그래머스 *Java] - 오픈채팅방 (0) | 2022.05.12 |
[프로그래머스 *Java] - 수식 최대화 (0) | 2022.05.12 |