[ Programmers ] 배열 조각하기 ( java ) 60 / 124
📚 Table of Contents
문제
문제 설명
정수 배열 arr
와 query
가 주어집니다.
query
를 순회하면서 다음 작업을 반복합니다.
- 짝수 인덱스에서는
arr
에서query[i]
번 인덱스를 제외하고 배열의query[i]
번 인덱스 뒷부분을 잘라서 버립니다. - 홀수 인덱스에서는
arr
에서query[i]
번 인덱스는 제외하고 배열의query[i]
번 인덱스 앞부분을 잘라서 버립니다.
위 작업을 마친 후 남은 arr
의 부분 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤
arr
의 길이 ≤ 100,000- 0 ≤
arr
의 원소 ≤ 100
- 0 ≤
- 1 ≤
query
의 길이 < min(50,arr
의 길이 / 2)query
의 각 원소는 0보다 크거나 같고 남아있는arr
의 길이 보다 작습니다.
입출력 예
문제 풀이
코드 설명
코드의 목적:
이 코드는 주어진 배열에서 쿼리 배열의 값을 이용해 배열의 구간을 반복적으로 잘라내는 기능을 가진 알고리즘입니다.
코드의 주요 구조:
- 클래스 정의: Solution이라는 이름의 클래스를 정의합니다.
- 메서드 정의: solution이라는 이름의 메서드를 정의합니다. 이 메서드는 정수 배열(arr)와 정수 배열(query)를 인자로 받아 처리합니다.
코드의 주요 알고리즘:
- 쿼리 배열의 각 값에 대해 반복문을 실행합니다.
- 반복문의 인덱스가 짝수인 경우, 배열의 시작부터 쿼리 값까지의 구간을 새로운 배열로 복사합니다.
- 반복문의 인덱스가 홀수인 경우, 배열의 쿼리 값부터 끝까지의 구간을 새로운 배열로 복사합니다.
- 이 과정을 쿼리 배열의 모든 값에 대해 반복한 후 최종적으로 남은 배열을 반환합니다.
코드의 핵심:
- for문을 이용하여 쿼리 배열의 각 값을 순회합니다.
- 삼항 연산자와 Arrays.copyOfRange를 이용하여 배열의 구간을 잘라냅니다.
풀이
import java.util.Arrays;
class Solution {
public int[] solution(int[] arr, int[] query) {
// 쿼리 배열의 각 값에 대해 반복문을 실행
for (int i = 0; i < query.length; i++) {
// 반복문의 인덱스가 짝수인 경우, 배열의 시작부터 쿼리 값까지의 구간을 새로운 배열로 복사
// 반복문의 인덱스가 홀수인 경우, 배열의 쿼리 값부터 끝까지의 구간을 새로운 배열로 복사
arr = (i % 2 == 0) ?
Arrays.copyOfRange(arr, 0, query[i] + 1) :
Arrays.copyOfRange(arr, query[i], arr.length);
}
// 최종적으로 남은 배열을 반환
return arr;
}
}
'Coding > Programers' 카테고리의 다른 글
[ Programmers ] 순서 바꾸기 ( java ) 62 / 124 (0) | 2024.01.04 |
---|---|
[ Programmers ] n 번째 원소부터 ( java ) 61 / 124 (0) | 2024.01.04 |
[ Programmers ] 2의 영역 ( java ) 59 / 124 (0) | 2024.01.03 |
[ Programmers ] 배열 만들기 3 ( java ) 58 / 124 (1) | 2024.01.03 |
[ Programmers ] 첫 번째로 나오는 음수( ( java ) 57 / 124 (0) | 2024.01.03 |