Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

[Lv.0_Java] 리스트 자르기 본문

알고리즘테스트/Programmers

[Lv.0_Java] 리스트 자르기

코딩거인 2023. 8. 18. 17:49
728x90

import java.util.*;
class Solution {
    public int[] solution(int n, int[] slicer, int[] num_list) {
        List <Integer> list = new ArrayList<>();
        if(n == 1){
            for(int i = 0; i <= slicer[1]; i++){
                list.add(num_list[i]);
            }
        }else if(n == 2){
            for(int i = slicer[0]; i < num_list.length; i++){
                list.add(num_list[i]);
            }
        }else if(n == 3){
            for(int i = slicer[0]; i <= slicer[1]; i++){
                list.add(num_list[i]);
            }
        }else{
            for(int i = slicer[0]; i <= slicer[1]; i += slicer[2]){
                list.add(num_list[i]);
            }
        }
        int[] answer = list.stream().mapToInt(i->i).toArray();
        return answer;
    }
}

리스트를 생성한 뒤 문제에서 주어진대로 하나하나 조건문을 작성한 뒤 그 안에 for 문을 돌려서 list 에 담아주고 list 를 다시 배열로 형변환 시킨 뒤 return 하게 하였다.

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;
    }
}

다른사람이 짠 코드를 보닌까 더욱 간결해진것같다! ㅇㅅㅇ... 더 열심히 공부하자!

728x90

'알고리즘테스트 > Programmers' 카테고리의 다른 글

[Lv.0_Java] 모스부호(1)  (0) 2023.08.22
[Lv.0_Java] qr code  (0) 2023.08.18
[Lv.0_Java] 진료 순서 정하기  (0) 2023.08.18
[Lv.1_Java]숫자 문자열과 영단어  (0) 2023.08.18
[Lv.0_Java] 팩토리얼  (0) 2023.08.18