
내가 작성한 코드
import java.util.*;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
List<Integer> list = new ArrayList<>(); // 임시로 저장할 리스트
// flag 배열을 순회하며 arr 배열의 값을 리스트에 추가하거나 제거
for (int i = 0; i < flag.length; i++) {
if (flag[i]) {
for (int j = 0; j < arr[i] * 2; j++) {
list.add(arr[i]);
}
} else {
for (int j = 0; j < arr[i]; j++) {
list.remove(list.size() - 1);
}
}
}
return list.stream().mapToInt(i -> i).toArray(); // 리스트를 배열로 변환하여 반환
}
}
다른 사람의 코드
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