๐ก flag ๊ฐ์ ๋ฐ๋ผ arr ์ ์๋ ๊ฐ๋ค์ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํด์ผํ๋ค.
flag ๊ธธ์ด์ arr ๊ธธ์ด๋ ๋์ผํ๋ค.
flag ๋ฅผ 1์ฐจ๋ก ๋๋ ค์ฃผ๋ฉด์ flag ๊ฐ์ด T & F ์ธ์ง ํ๋จํด์ค๋ค.
1. ์ฐธ์ด๋ฉด arr[i] ๋ฅผ arr[i] *2 ๋ฒ ๋ฐ๋ณตํด์ค๋ค.
2. ๊ฑฐ์ง์ด๋ฉด arr[i] ๋งํผ ์ง์ด๋ค. (์ง์ธ๋๋ ๋ค์์๋ถํฐ remove)
๐ฌ ๋ฐฐ์ด์ switch ๊ฐ์ ์ฌ์ฉ ๋ถ๊ฐ : flag ๋ฐฐ์ด์ด boolean ๋ฐฐ์ด๋ก ์ ์ธ๋์ด์, switch๋ฌธ ๋์ if-else ๋ฌธ์ ์ฌ์ฉํด์ค์ผํ๋ค.
๐ฌ arr.size() :: ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ค.
import java.util.ArrayList;
class Solution {
public ArrayList<Integer> solution(int[] arr, boolean[] flag) {
ArrayList<Integer> answer = new ArrayList<Integer>();
for (int i = 0; i < flag.length; i++){
if (flag[i] == true){ //flag ๊ฐ ์ฐธ์ด๋ฉด arr[i] * 2 ๋งํผ ์ถ๋ ฅ
for (int j = 0; j < arr[i]*2; j++){
answer.add(arr[i]);
}
}else{ // ๊ฑฐ์ง์ด๋ฉด arr[i]
for (int j = 0; j < arr[i]; j++){
answer.remove(answer.size()-1);
}
}
}//for
return answer;
}
}