728x90
반응형
SMALL
안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)
🪅 나의 문제 풀이
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = {};
int num1 = i;
int num2 = j;
int[] answer = new int[i,j];
for(int i=0; i<numbers.length; i++){
for(int j=0; j<numbers.length; j++){
}
(1번 방법)int[i,j] numbers = answer;
(2번 방법)Arrays.copyOfRange(numbers, i, j) = answer;
}
return answer;
}
}
첫번째 방법은 배열을 반복문을 통해 numbers의 길이에 따라 나누려고 했었다.
두번째 방법으로는 배열 자르기 코드를 생각해보며 구글링을 하다가 찾아낸 Arrays.copyOfRange를 함께 이용해서 answer을 구해보려고 했는데 한번에 잘 해결되지 않았다.
🧸 코드설명
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;
}
}
- int타입 배열 answer 변수를 numbers 길이만큼 크기를 지정해줍니다.
- Arrays.copyOfrange(복사할 배열, 시작 위치, 배열 크기)를 사용하여 배열을 복사해 answer에 대입합니다.
- num2 + 1을 해준 이유는, num2번째 인덱스까지 출력해야하기 때문에 0번째 인덱스부터 세는 개발에서의 숫자세기의 개념으로 인해 num2 + 1이다.
즉, 범위가 (from,to)인데 from은 <= 이고 to는 < 이거라 +1을 해주어야 to값까지 범위에 들어가기 때문입니다.
조금 더 쉽게 말하자면 from <= Range < to 가 됩니다.
[배열의 복사 방법]
- Arrays.copyOf(원본 배열, 복사할 배열의 길이)
- Arrays.copyOfrange(복사할 원본 배열, from(복사를 시작 인덱스), to(복사를 끝낼 인덱스))
✨ 다른 풀이
풀이1)
풀이2)
for문안에 변수두개 넣을수있는거 처음알았답니다...
풀이3)
살짝 첫번째 방법으로 제가 의도하던 스타일의 정답이었어요!
728x90
반응형
LIST
'。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★ > 나의 코딩테스트' 카테고리의 다른 글
[프로그래머스/Java] 코딩테스트 Lv.0 삼각형의 완성조건 (1) (1) | 2023.09.24 |
---|---|
[프로그래머스/Java] 코딩테스트 Lv.0 배열 원소의 길이 (0) | 2023.09.23 |
[프로그래머스/Java] 코딩테스트 Lv.0 짝수 홀수 개수 (0) | 2023.07.18 |
[프로그래머스/Java] 코딩테스트 Lv.0 배열 뒤집기 (0) | 2023.07.17 |
[프로그래머스/Java] 코딩테스트 Lv.0 중복된 숫자 개수 (0) | 2023.07.13 |