문제 :
https://school.programmers.co.kr/learn/courses/30/lessons/181897
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결:
import java.util.*;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
List<Integer> answer = new ArrayList<>();
int a = slicer[0];
int b = slicer[1];
int c = slicer[2];
switch(n) {
case 1:
for (int i = 0; i <= b; i++) {
answer.add(num_list[i]);
}
break;
case 2:
for (int i = a; i < num_list.length; i++) {
answer.add(num_list[i]);
}
break;
case 3:
for (int i = a; i <= b; i++) {
answer.add(num_list[i]);
}
break;
case 4:
for (int i = a; i <= b; i += c) {
answer.add(num_list[i]);
}
break;
}
return answer.stream().mapToInt(i->i).toArray();
}
}
다른 사람 풀이:
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
int start = n == 1 ? 0 : slicer[0];
int end = n == 2 ? num_list.length - 1 : slicer[1];
int step = n == 4 ? slicer[2] : 1;
int[] answer = new int[(end - start + step) / step];
for (int i = start, j = 0; i <= end; i += step) {
answer[j++] = num_list[i];
}
return answer;
}
}
'알고리즘 > [프로그래머스] JAVA' 카테고리의 다른 글
[코딩 기초 트레이닝] n 번째 원소까지 (1) | 2023.12.22 |
---|---|
[코딩 기초 트레이닝] 배열 조각하기 (1) | 2023.12.22 |
[코딩 기초 트레이닝] 배열 만들기3 (0) | 2023.12.21 |
[코딩 기초 트레이닝] 문자열 겹쳐쓰기 (1) | 2023.11.19 |
[코딩 기초 트레이닝] 홀짝 구분하기 (1) | 2023.11.19 |