프로그래머스

[코딩테스트 연습] 배열 조각하기 - Lv.0

yujin0517 2023. 5. 22. 17:37

배열 조각하기

 

[문제 풀이]

query의 인덱스가 짝수일 경우에는 arr[0] ~ arr[query[i]] 까지 배열을 복제하고,

query의 인덱스가 홀수일 경우에는 arr[query[i]] ~ arr[arr.length-1] 까지 배열을 복제한다. 

Arrays의 copyOfRange 메서드를 사용해서 배열을 복제하였다. 

copyOfRange(복제할 배열, 시작 위치, 배열의 크기)

copyOfRange 메서드의 마지막 파라미터 값이 배열의 크기이므로 코드를 작성할 때 1씩 더한 값을 넣어줬다. 

"arr.length는 왜 +1을 하지 않았나요?"라는 질문이 떠오를 수는 있지만 조금만 생각해 보면 이해할 것이다.

(우리는 배열의 마지막 요소의 인덱스를 구할 때 arr.length-1을 사용한다.)

 

**

처음 코드를 작성하고 제출했을 때 런타임에러가 떴다. 

이유는 문제를 잘 못 이해했기 때문이다. query의 인덱스가 짝수인지 홀수인지 구분해야 하는데 query[i]이 짝수인지 홀수인지 구분해서 코드를 작성했기 때문이다. 테스트 코드는 통과해서 이때까지는 뭐가 틀렸는지 몰랐다...

 

[코드]