728x90

[문제 설명]

정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.

 

[입출력 예]

num_list n result
[2, 1, 6] 1 [2]
[5, 2, 1, 7, 5] 3 [5, 2, 1]

 

[차근 차근 생각해보기]

  1. answer의 배열의 길이를 n까지로 정해준다.
  2. n의 길이까지 돌면서
  3. answer 배열에 num_list의 i번째 요소를 넣어준다.

 

[결과]

<수정 전>

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[n];
        for(int i = 0; i < num_list.length; i++){
            if(i < n){
                answer[i] = num_list[i];
            }
        }
        return answer;
    }
}

 

<수정 후>

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = new int[n]; 
        for(int i = 0; i < n; i++){
            answer[i] = num_list[i];
        }
        return answer;
    }
}

 

[반성할 점]

<수정 전>

  • answer 배열을 n만큼 정해주어야 n의 길이 만큼 배열에 요소가 담길 것이라고 생각하지 못했다.
  • i가 n보다 작은 것은 배열의 인덱스는 0부터 시작하니까 i가 n보다 작아야 한다.
  • i번째 요소를 answer의 i번째에 담아주면 n번째 원소까지 값이 들어갈 것이다.

<수정 후>

  • 수정 전 코드는 불필요한 코드가 있었다.
  • num_list의 첫번째 원소부터 n번째 원소까지 넣는 것이기 때문에
  • n번째까지 돌면서 num_list의 i번째를 answer의 i번째에 넣어주고
  • answer를 리턴해주면 되는 것인데 굳이 조건문을 사용하여 불필요한 코드를 작성했었다.
  • 조건을 잘 생각하며 차근 차근 풀기..!
728x90

+ Recent posts