반응형
250x250
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Yeonee's Story

[프로그래머스/Java] 코딩테스트 Lv.0 배열 자르기 본문

。*:・゚☆・゚schedule・゚*:・゚★・:*:・☆ *:・゚★/나의 코딩테스트

[프로그래머스/Java] 코딩테스트 Lv.0 배열 자르기

yeonee 여니 2023. 7. 29. 16:24
728x90
반응형
SMALL

안녕하세요.
https://blog.naver.com/sysysy0302 여니입니다 :)

 

yeonee 블로그 : 네이버 블로그

예쁘고 맛있게 먹고 건강하게,강인하지만 온화하게 행하라. ※맛스타운스타일상 인스타 www.instagram.com/s2._.y25n ※맛집감성일상 유튜브https://youtube.com/channel/@S2_yeonee 티스토리https://yeoneeluv.tistory.co

blog.naver.com

 

 

 

🪅 나의 문제 풀이

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