Posis

[프로그래머] 배열 자르기 본문

알고리즘/프로그래머스

[프로그래머] 배열 자르기

CooNiHong 2022. 11. 28. 21:23

문제 링크

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

 

프로그래머스

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

programmers.co.kr

문제 설명

정수 배열 numbers와 정수 num1num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 2 ≤ numbers의 길이 ≤ 30
  • 0 ≤ numbers의 원소 ≤ 1,000
  • 0 ≤ num1 < num2 < numbers의 길이

입출력 예

numbers num1 num2 result
[1, 2, 3, 4, 5] 1 3 [2, 3, 4]
[1, 3, 5] 1 2 [3, 5]

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]를 return 합니다.

입출력 예 #2

  • [1, 3, 5]의 1번째 인덱스 3부터 2번째 인덱스 5까지 자른 [3, 5]를 return 합니다.

나의 풀이

Java

import java.util.*;

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        return Arrays.copyOfRange(numbers, num1, num2 + 1);
    }
}

JavaScript

function solution(numbers, num1, num2) {
    var answer = [];
    for(let i = num1, j = 0; i <= num2; i++, j++) {
        answer[j] = numbers[i]
    }
    return answer;
}

// 방법2
function solution(numbers, num1, num2) {
    var answer = [];
    for(let i = num1, j = 0; i <= num2; i++, j++) {
        answer.push(numbers[i])
    }
    return answer;
}

회고록(문제 풀고 생각난점)

알고리즘을 풀면서 for문과 if문 같은 키워드로 풀어야하는지 메서드를 알고있다면 메서드로 풀어도 상관없을지 문득 생각에 잠겼는데 친구에게 물어보니 상관없을것 같다는 생각과 메서드만 사용해서 문제를 풀면 알고리즘을 하는 이유가 없을 것 같다는 의견이 있었다. 내가 생각해도 무조건 메서드로만 풀면 왜인지 의미가 없을것 같이 느껴져서 둘의 의견을 종합해 키워드로 풀고난 이후에 메서드로 리팩토링을 해보는 방법으로 풀거나 Java는 키워드로 풀고 JavaScript는 메서드를 활용해서 풀어볼까한다.

728x90