정수 배열 arr와 query가 주어집니다.
query를 순회하면서 다음 작업을 반복합니다.
위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.
문제가 너무 이해하기 어렵게 되어 있었다. 마이 화나네~~
처음에 생각했던 건 짝수 인덱스, 홀수 인덱스가 int[] arr의 인덱스라는 거였고, 그래서 이중 for문을 만들었었다. 하지만 테스트를 통과하지 못했고, 한참을 뜯어 보다가 질문하기에 들어가서 알았다. 저 인덱스는 int[] query의 인덱스라는 걸...
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[] query) {
int[] answer = {};
for(int i=0;i<arr.length;i++){
for(int j=0;j<query.length;j++){
if(i%2 == 0){
answer = Arrays.copyOfRange(arr, 0, query[j]+1);
}else{
answer = Arrays.copyOfRange(arr, query[i], arr.length);
}
}
}
return answer;
}
}
그래서 코드를 아래와 같이 수정했다. 이렇게 쉬울 수가. query의 값에 따라 결과가 계속 누적되어야 하기 때문에 따로 변수를 만들어줄 필요 없이 arr을 재사용했다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[] query) {
for(int i=0;i<query.length;i++) {
if(i%2 == 0) {
arr = Arrays.copyOfRange(arr, 0, query[i]+1);
}else {
arr = Arrays.copyOfRange(arr, query[i], arr.length);
}
}
return arr;
}
}