728x90
코드 힌트:
- for문에서 += 사용:
- for (int i = a; i <= b; i += c) { ... }: i += c는 i = i + c와 동일하며, c 간격으로 인덱스를 증가시키는 역할을 합니다. 이를 통해 반복문에서 인덱스를 조절하고 범위를 설정할 수 있습니다.
- 동일한 for문 사용:
- switch (n) { ... }을 통해 a, b, c 값을 설정하면서도 반복문은 항상 동일한 구조로 작동합니다. 이는 코드의 재사용성을 높이며, 각 경우에 따라 설정된 인덱스 범위를 사용하여 배열에서 요소를 추출할 수 있습니다.
- List 사용:
- List<Integer> list = new ArrayList<>();: 배열의 크기가 변할 수 있는 경우, 요소를 동적으로 추가하거나 제거할 수 있는 List를 사용하는 것이 효율적입니다. ArrayList는 요소의 추가 및 제거가 O(1) 시간 복잡도에 수행됩니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
// slicer 배열에서 각각의 변수 a, b, c를 초기화
int a = slicer[0];
int b = slicer[1];
int c = slicer[2];
// 결과를 담을 리스트 생성
List<Integer> list = new ArrayList<>();
// n 값에 따라서 a, b, c 값을 다르게 설정
switch (n) {
case 1:
// n = 1일 때: num_list의 0번 인덱스부터 b번 인덱스까지 가져옴
a = 0; // 시작 인덱스 0으로 설정
c = 1; // 기본 간격 1로 설정 (모든 요소를 순서대로 가져옴)
break;
case 2:
// n = 2일 때: num_list의 a번 인덱스부터 마지막 인덱스까지 가져옴
b = num_list.length - 1; // 마지막 인덱스로 설정
c = 1; // 기본 간격 1로 설정 (모든 요소를 순서대로 가져옴)
break;
case 3:
// n = 3일 때: num_list의 a번 인덱스부터 b번 인덱스까지 가져옴
c = 1; // 기본 간격 1로 설정 (모든 요소를 순서대로 가져옴)
break;
}
// 설정된 a, b, c 값을 이용하여 num_list에서 요소를 추출하여 list에 추가
for (int i = a; i <= b; i += c) {
list.add(num_list[i]);
}
// list를 int 배열로 변환
int[] result = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
result[i] = list.get(i);
}
return result;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 문자열 잘라서 정렬하기 (0) | 2024.08.08 |
---|---|
[프로그래머스] 배열 조각하기 (0) | 2024.08.06 |
[프로그래머스] 다음에 올 숫자 (0) | 2024.08.05 |
[프로그래머스] 글자 지우기 (0) | 2024.08.02 |
[프로그래머스] 문자 개수 세기 (0) | 2024.08.02 |