개발자/프로그래머스

자바_프로그래머스_배열 자르기

푸루닉 2022. 11. 14. 14:45

https://github.com/pulunick/programmers-and-baekjun/blob/main/Quiz120833.java

 

GitHub - pulunick/programmers-and-baekjun

Contribute to pulunick/programmers-and-baekjun development by creating an account on GitHub.

github.com

1. 내 풀이 과정

가. 새로운 배열을 만들어 배열의 크기를 지정해준다.//인덱스는 0부터 시작하기에 +1을 해준다.

int[] numbers2 = new int[num2 - num1 + 1];

나. 새로운 배열의 인덱스 초기값 지정

int index = 0;

다. for(시작=num1; 종료시점=num2(num2번째 인덱스까지 출력해야한다); 반복할때마다 ++)

for (int i = num1; i <= num2; i++) {
numbers2[index] = numbers[i];
System.out.println(numbers2[index]);
index++;
}

 

2. Arrays의 메소드를 이용한 풀이

Arrays.copyOfRange() 는 특정 배열의 원하는 범위만큼 복사하여 새로운 배열을 만드는 메소드

가. 새로운 배열 = Arrays.copyOfRange(원본 배열, 복사하려는 시작 요소의 인덱스,

int[] answer = Arrays.copyOfRange(numbers, num1, num2 + 1);
for(int a : answer) {
System.out.println(a);
}

 

3. List로 변환하여 풀이

가. List 그릇을 만들어주고 List그릇에 배열을 쏟아부움.
List<Integer> list = new ArrayList<Integer>();
for(int i = num1; i<=num2; i++) {
list.add(numbers[i]);
}

 

가-1. 확장 for문으로 뽑기

for (Integer integer : list) {
System.out.println(integer);
}

 

가-2. 람다식으로 뽑기

list.forEach(s -> System.out.println(s));

 

가-3. 메소드 참조(::)로 뽑기

list.forEach(System.out::println);