| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- react
- styled-components
- 입문
- 모던 딥 다이브 자바스크립트
- 모던 자바스크립트 딥 다이브
- 비전공자
- 프론트엔드
- JavaScript
- Github
- TypeScript
- CSS
- 자바스크립트
- 코딩테스트
- 공식문서
- 국비지원교육
- 자료구조
- 내일배움카드
- 이벤트
- 개발 공부
- 알고리즘
- next.js
- 리액트
- 패스트캠퍼스
- 메가바이트스쿨
- 개발자취업부트캠프
- useRef
- MegabyteSchool
- GIT
- 프로그래머스
- useMemo
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 배열 자르기 본문
🗒️ 문제 설명
정수 배열 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] |
❇️ 나의 풀이
- arr.splice(n,m)을 사용하면 되지 않을까?
- 배열의 n번째 요소부터 m개를 지우는 것이기 때문에 문제와는 맞지 않는 방식이다.
- map을 통해서 배열 요소의 인덱스가 num1 <= index <= num2 인 요소들만 빈 배열인 arr에 push하면 되지 않을까?
function solution(numbers, num1, num2) {
var answer = [];
numbers.filter(function(elm, idx){
if(idx >= num1 && idx <= num2){
answer.push(elm);
};
});
return answer;
}
✍️ 리뷰
✔️ 다른 사람의 코드를 보니까 splice를 사용한 사람들도 많았다.
function solution(numbers, num1, num2) {
return numbers.splice(num1, num2-num1+1);
}
✔️ 저렇게 해도 될거라는 생각은 들었지만 안전하게 map을 사용하자는 생각이 들었다.
✔️ 풀이들 중에서 forEach도 있고 filter를 사용한 분들도 계셨다! 코드에는 정해진 정답은 없다. 하지만, 어떻게 하는 것이 더 효율적이고 논리적인 사고인지 공부해야겠다.
'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 피자 나눠 먹기 (1) (0) | 2022.12.22 |
|---|---|
| [프로그래머스] 짝수 홀수 개수 (0) | 2022.12.22 |
| [프로그래머스] 짝수는 싫어요 (0) | 2022.12.21 |
| [프로그래머스] 아이스 아메리카노 (0) | 2022.12.21 |
| [프로그래머스] 배열 원소의 길이 (0) | 2022.12.21 |