https://school.programmers.co.kr/learn/courses/30/lessons/181860
정답
import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
ArrayList<Integer> list = new ArrayList<>();
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);
}
}
}
int answer[] = new int[list.size()];
for(int i=0; i<list.size(); i++)
{
answer[i] = list.get(i);
}
return answer;
}
}
다른 사람의 풀이
import java.util.*;
class Solution {
public int[] solution(int[] arr, boolean[] flag) {
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < flag.length; i++) {
if (flag[i]) {
for (int j = 0; j < arr[i] * 2; j++) stack.push(arr[i]);
} else {
for (int j = 0; j < arr[i]; j++) stack.pop();
}
}
return stack.stream().mapToInt(Integer::intValue).toArray();
}
}
'Java > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 무작위로 k개의 수 뽑기 (0) | 2024.04.11 |
---|---|
[JAVA] 프로그래머스 - 배열 만들기 6 (0) | 2024.04.11 |
[JAVA] 프로그래머스 - 배열의 원소만큼 추가하기 (0) | 2024.04.10 |
[JAVA] 프로그래머스 - 세 개의 구분자 (0) | 2024.04.10 |
[JAVA] 프로그래머스 - rny_string (0) | 2024.04.10 |