문제 설명
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 2 <= numbers의 길이 <= 30
- 0 <= numbers의 원소 <= 1,000
- 0 <= num1 < num2 < numbers의 길이
입출력 예
numbers | num1 | num2 | result |
[1, 2, 3, 4, 5] | 1 | 3 | [2, 3, 4] |
[1, 3, 5] | 1 | 2 | [3, 5] |
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[numbers.length];
answer = Arrays.copyOfRange(numbers, num1, num2+1);
return answer;
}
}
answer의 크기는 웬만해서는 딱 맞춰주고 싶지만 어떻게 맞춰줘야 할지 모르겠어서 우선 기준이 되는 numbers의 길이만큼 설정해주었습니다. 이렇게 설정해도 통과는 되더라구요. 이후 Arrays의 메소드인 copyOfRange를 통해 간단히 구현해보았습니다.
Arrays.copyOfRange(복사할 배열, 시작 위치, 종료 위치) |
종료 위치 이전까지의 값만 반환하므로 저는 풀이에서 + 1을 해주었습니다. 이제 생각해보니 num2에서 num1을 뺀 값에 1을 더해주면 answer에 딱 맞는 배열크기가 되었겠네요. 라고 생각했는데 다른 사람들의 풀이를 보니 배열크기 지정 없이 바로 풀어버리시는 분들도 있고…. 위의 풀이도 간단하지만 stream으로 푼 풀이도 종종 보이네요.
'프로그래머스 > Lv. 0(코딩테스트 입문)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 최댓값 만들기(1)(Java) (0) | 2023.03.27 |
---|---|
[프로그래머스 코딩테스트] 점의 위치 구하기(Java) (0) | 2023.03.27 |
[프로그래머스 코딩테스트] 짝수의 합(Java) (0) | 2023.03.26 |
[프로그래머스 코딩테스트] 짝수 홀수 개수(Java) (0) | 2023.03.25 |
[프로그래머스 코딩테스트] 양꼬치(Java) (0) | 2023.03.25 |