機能開発(java)
問題の説明
考える
説明する
import java.util.ArrayList;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int cnt =0; // 현재 작업중인 위치
ArrayList<Integer> list = new ArrayList<>();
while(cnt !=progresses.length){
if(progresses[cnt] <= 99){
for(int i =cnt; i<progresses.length; i++){
progresses[i] += speeds[i];
}
}
if( progresses[cnt] >= 100){
int res =0; // 배포되는 개수
while(progresses[cnt] >= 100){
cnt++;
res++;
if(cnt ==progresses.length) break;
}
list.add(res);
}
}
int[] ans = new int[list.size()];
int num =0;
for(Integer i : list) ans[num++] = i;
return ans;
}
}
2番目のwhileは、ドアを離れるbreak条件を誤って設定し、outofboundメモリエラーを1時間発生させた.問題が解決しなかったときは、冷静に私のコードをもう一度読んでみましょう.
ArrayListは1行のコードでint[]に変換できます.
int[] ans = new int[list.size()];
int num =0;
for(Integer i : list) ans[num++] = i;
int[] ans = {};
ans = list.stream().mapToInt(i->i).toArray();
コードは簡潔になりますが、速度が遅くなるのでfor文を使った変換が有効です.
Reference
この問題について(機能開発(java)), 我々は、より多くの情報をここで見つけました https://velog.io/@juntree/기능개발javaテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol