티스토리 뷰
📌문제
https://school.programmers.co.kr/learn/courses/30/lessons/120833
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌나의 풀이
function solution(numbers, num1, num2) {
var answer = [];
answer = numbers.splice(num1, num2);
return answer;
}
테스트 1 | |
입력값 〉 | [1, 2, 3, 4, 5], 1, 3 |
기댓값 〉 | [2, 3, 4] |
실행 결과 〉 | 테스트를 통과하였습니다. |
테스트 2 | |
입력값 〉 | [1, 3, 5], 1, 2 |
기댓값 〉 | [3, 5] |
실행 결과 〉 | 테스트를 통과하였습니다. |
테스트 3 | |
입력값 〉 | [1, 2, 4, 5, 6, 7], 2, 4 |
기댓값 〉 | [4, 5, 6] |
실행 결과 〉 | 실행한 결괏값 [4,5,6,7]이 기댓값 [4,5,6]과 다릅니다. |
splice(num1, num2)로 계속 시도하다가 최종 제출해서 두 번 정도 계속 실패가 떠서 테스트 코드 추가해서 확인해 봤는데 .. 😮?!
slice와 다르게 splice는 인덱스 to 인덱스로 자르는 게 아니라 splice(시작 인덱스, 삭제할 개수)였다.
[1]. splice()
function solution(numbers, num1, num2) {
return numbers.splice(num1, num2-num1+1);
}
여기서 num2-num1+1는 자르고 싶은 요소의 개수를 의미합니다.
num1에서 시작하여 num2까지 포함되므로, 총 개수를 구하기 위해 +1을 더해줍니다.
개수를 구하는 부분은 쉽게 풀어서 설명을 작성해 보겠습니다. 🤔
예시
배열이 numbers = [10, 20, 30, 40, 50, 60]이고, num1 = 2와 num2 = 4라고 가정해 봅시다.
num1 = 2는 인덱스 2를 나타내므로, 배열에서 30을 의미합니다.
num2 = 4는 인덱스 4를 나타내므로, 배열에서 50을 의미합니다.
잘라야 할 범위
우리는 num1부터 num2까지 잘라야 하므로 numbers에서 [30, 40, 50]을 반환하고자 합니다.
num2 - num1 + 1은 4 - 2 + 1 = 3이 됩니다.이 계산은 "몇 개의 요소를 자를지"를 나타내며, 3개를 의미합니다.
numbers.splice(num1, num2 - num1 + 1)은 numbers 배열에서 인덱스 num1부터 시작해서 3개의 요소를 잘라 반환합니다.
결과적으로 [30, 40, 50]이 반환됩니다.
[2] . slice()
내가 제출한 방법
function solution(numbers, num1, num2) {
var answer = [];
answer = numbers.slice(num1, num2+1);
return answer;
}
slice는 slice(2, 4)일 경우 2번째부터 3번째에 있는 정수를 반환하기 때문에 마지막 인덱스에 +1을 했습니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스|JS] Lv.2 다음 큰 숫자 / split()과 재귀 호출 (0) | 2025.03.30 |
---|---|
[프로그래머스|JS] Lv.1 햄버거 만들기 (0) | 2025.02.24 |
[프로그래머스|JS] Lv.0 외계행성의 나이 (1) | 2024.11.06 |
[프로그래머스|JS] Lv.1 문자열 섞기 (1) | 2024.10.30 |
[프로그래머스|JS] Lv.0 구슬을 나누는 경우의 수 (0) | 2024.10.17 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 재귀함수
- overloading
- 타입스크립트
- 카카오로그인
- NPM
- Async
- useEffect
- await
- ts
- 오블완
- 노마드
- ReactJS
- 리액트
- React
- 프로젝트회고록
- 프로그래머스
- CLI
- 리액트네이티브
- 챌린지1일차
- create react app
- slice
- nomard
- 오버로딩
- TypeScript
- splice
- Cleanup
- useState
- 자바스크립트
- props
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
글 보관함