문제
https://school.programmers.co.kr/learn/courses/30/lessons/42586
풀이
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
List<Integer> list = new ArrayList<>();
int toUpdate=0;
while(toUpdate<progresses.length){
for(int i=0;i<progresses.length;i++){
progresses[i]+=speeds[i];
}
if(progresses[toUpdate]>=100){
int updateCnt = 1;
toUpdate++;
while(toUpdate<progresses.length && progresses[toUpdate]>=100){
toUpdate++;
updateCnt++;
}
list.add(updateCnt);
}
}
return list.stream().mapToInt(i -> i).toArray();
}
}
해설
문제의 의도는 스택이나 큐를 사용하여 스택에 내용물을 저장 후 그에 대한 처리를 요구한 것 같으나...
길이가 정해지지않은 ArrayList를 사용하여 처리 후 stream을 이용하여 배열로 돌릴 경우 문제 없이 해결되었다.
'Coding Test > JAVA 코딩테스트 풀이정리(프로그래머스)' 카테고리의 다른 글
프로그래머스 스쿨(Java - Lv.1) - 유연근무제[2025 프로그래머스 코드챌린지 1차 예선] [반복문처리] (1) | 2025.02.12 |
---|---|
프로그래머스 스쿨(Java - Lv.2) - 피로도[경우의수를 따지는 완전탐색] (0) | 2025.01.28 |
프로그래머스 스쿨(Java - Lv.2) - 최솟값 만들기[참조타입과 원시타입] (0) | 2025.01.07 |
프로그래머스 스쿨(Java - Lv.2) - 연속된 부분 수열의 합[투포인터/윈도우슬라이드 합산방식고찰] (1) | 2024.12.25 |
프로그래머스 스쿨(Java - Lv.2) - 쿼드압축 후 개수세기[조건이 달린 재귀함수/DFS] (1) | 2024.12.24 |