코딩 기초 트레이닝 Day 13 with Java

2024. 5. 15. 18:29코딩테스트 리뷰(프로그래머스)/코딩 기초 트레이닝 with Java

문제.1 - n 번째 원소부터

https://school.programmers.co.kr/learn/courses/30/lessons/181892

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
정수 리스트 num_list 와 정수 n이 주어질 때, n번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
import java.util.Arrays;
class Solution {
    public int[] solution(int[] num_list, int n) {
        return Arrays.copyOfRange(num_list, n-1, num_list.length);
    }
}

 

 

 

문제.2 - 순서 바꾸기

https://school.programmers.co.kr/learn/courses/30/lessons/181891

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
 정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n번째 원소 이후의 원소들과 n번째까지의 원소들로 나눠 n번째 원소 이후의 원소들을 n번째까지의 원소들 앞에 붙인 리스트를 return 하도록 solution 함수를 완성해주세요.
import java.util.*;
class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] front = Arrays.copyOfRange(num_list, 0, n);
        int[] back = Arrays.copyOfRange(num_list, n, num_list.length);
        int[] sum = new int[num_list.length];
        int i=0;
        for( int b : back ) sum[i++] = num_list.CharAt(i);
        for( int f : front ) sum[i++] = f;
        return sum;
    }
}

 

 

 

문제.3 - 왼쪽 오른쪽

https://school.programmers.co.kr/learn/courses/30/lessons/181890

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
 문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러개 저장되어 있습니다.
str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l" 이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
"l" 이나 "r" 이 없다면 빈 리스트를 return 합니다.
import java.util.Arrays;
class Solution {
    public String[] solution(String[] str_list) {
        if( str_list.length == 1 ) return new String[]{};
        for( int i = 0; i < str_list.length; i++ ) {
            if( str_list[i].equals("l")) return Arrays.copyOfRange(str_list, 0, i);
            else if ( str_list[i].equals("r")) return Arrays.copyOfRange(str_list, i+1, str_list.length);
        }
        return new String[]{};
    }
}

 

 

 

문제.4 - n 번째 원소까지

https://school.programmers.co.kr/learn/courses/30/lessons/181889

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n번쨰 원소까지의  모든원소를 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
import java.util.Arrays;
class Solution {
    public int[] solution(int[] num_list, int n) {
        return Arrays.copyOfRange(num_list, 0, n);
    }
}

 

 

 

문제.5 - n개 간격의 원소들

https://school.programmers.co.kr/learn/courses/30/lessons/181888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명
 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개의 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return 하도록 solution 함수를 완성해주세요.
class Solution {
    public int[] solution(int[] num_list, int n) {
        int size = (int)Math.ceil((double)num_list.length/n);
        int[] answer = new int[size];
        for ( int i = 0; i < size && i < num_list.length; i++ ) {
            answer[i] += num_list[i*n];
        }
        return answer;
    }
}

 

 

 

느낀점

뭔가 코드 가독성이 낮은 건지 아니면 코드 독해력이 부족한건지..

둘다인지. 모르겠네요...

코딩 스타일을 좀 바꾸도록 노력해야겠습니다.