프로그래머스 코딩테스트 연습 입문 '배열 자르기' 문제입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/120833
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❓문제 설명
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, 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] |
✏️ 직접 구현한 코드
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2-num1+1];
for(int i = 0, j = num1; i < answer.length; i++, j++) {
answer[i] = numbers[j];
}
return answer;
}
}
🗣️ 코드 설명
- 먼저 answer배열의 크기를 num2 - num1 + 1 로 정했습니다.
- for문에는 0부터 answer배열의 크기만큼 증가하며 반복하는 i와, num1부터 증가하며 반목하는 j를 두었습니다.
- 그렇게 answer배열은 0부터 증가하게 되고, numbers배열은 num1부터 num2 숫자까지의 인덱스로 증가하게 됩니다.
🔥다른 사람의 코드
class Solution {
public int[] solution(int[] numbers, int num1, int num2) {
int[] answer = new int[num2 - num1 + 1];
for (int i = num1; i <= num2; i++) {
answer[i -num1] = numbers[i];
}
return answer;
}
}
저는 for문을 i와 j 두 가지를 이용해 반복했지만, 이 분은 i 하나만으로 반복시켰네요 :O
다음에는 코드를 줄일 방법을 더 생각해 봐야겠습니다!!
'코딩테스트 회고록 > 코테_Java' 카테고리의 다른 글
[JAVA] 프로그래머스 - 세균 증식 (0) | 2023.02.04 |
---|---|
[JAVA] 프로그래머스 - 삼각형의 완성조건(1) (0) | 2023.02.01 |
[JAVA] 프로그래머스 - 문자열 뒤집기 (0) | 2023.01.31 |
[JAVA] 프로그래머스 - 나이 출력 (0) | 2023.01.31 |
[JAVA] 프로그래머스 - 팩토리얼 (0) | 2023.01.26 |