배열 조각하기
[문제 풀이]
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]이 짝수인지 홀수인지 구분해서 코드를 작성했기 때문이다. 테스트 코드는 통과해서 이때까지는 뭐가 틀렸는지 몰랐다...
[코드]
'프로그래머스' 카테고리의 다른 글
[코딩테스트 연습] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 - Lv.0 (0) | 2023.05.26 |
---|---|
[코딩테스트 연습] 원하는 문자열 찾기 - Lv.0 (0) | 2023.05.25 |
[코딩테스트 연습] 문자열 여러 번 뒤집기 - Lv.0 (0) | 2023.05.16 |
[코딩테스트 연습] 배열 만들기 2 - Lv.0 (0) | 2023.05.08 |
[코딩테스트 연습] 수열과 구간쿼리2 - Lv.0 (0) | 2023.05.06 |