인프런 커뮤니티 질문&답변

00님의 프로필 이미지
00

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

1. 두 배열 합치기(Two Pointers Algorithm)

slice 활용

작성

·

106

0

정답 코드 중에서

while(p1<n) answer.push(arr1[p1++]);

while(p2<n) answer.push(arr2[p2++]);

대신

if (a < n) answer.push(...arr1.slice(a));
if (b < n) answer.push(...arr2.slice(b));

slice 활용해서 풀어도 괜찮을까요? (a는 p1이고, b는 p2입니다)

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 답변드리겠습니다.

slice 메서드를 사용해서 나머지 배열 요소들을 answer에 추가하는 것은 충분히 괜찮은 방법입니다. slice 메서드는 배열의 일부를 얕은 복사본으로 새로운 배열 객체로 반환하므로, 주어진 문제 상황에서 두 배열 arr1과 arr2 중 하나가 먼저 모든 요소들이 answer 배열에 추가된 후, 남은 배열의 요소들을 추가하는 경우에 사용할 수 있습니다.

주어진 코드에서 a(p1) 또는 b(p2) 인덱스가 n 보다 작을 경우, 각 배열의 a(p1), b(p2) 인덱스부터 끝까지 요소를 slice로 잘라내어 answer의 끝에 이어 붙이는 것이죠.

조건에 따라 pushslice를 잘 조합하여 사용하면 보다 간결하고 이해하기 쉬운 코드를 작성할 수 있습니다.

00님의 프로필 이미지
00

작성한 질문수

질문하기