문제
내가 작성한 정답
import java.util.*;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
List<Integer> answer = new ArrayList<>();
for(int i=0; i<flag.length; i++){
if(flag[i]){
for(int j=0; j < arr[i]*2; j++){
answer.add(arr[i]);
}
}else {
for(int j=0; j<arr[i]; j++){
answer.remove(answer.size()-1);
}
}
}
return answer.stream().mapToInt(i->i).toArray();
}
}
다른 사람들의 정답
// repeat 사용가능하게 String으로 변환해서 처리
import java.util.stream.Stream;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
String answer = "";
for(int idx=0; idx<arr.length; idx++) {
if(flag[idx]) {
answer += String.valueOf(arr[idx]).repeat(arr[idx]*2);
}
else {
answer = answer.substring(0, answer.length() - arr[idx]);
}
}
return Stream.of(answer.split("")).mapToInt(Integer::parseInt).toArray();
}
}Share article