강의

멘토링

로드맵

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

csh9411님의 프로필 이미지
csh9411

작성한 질문수

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

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

출력 결과

작성

·

195

1

answer에 푸시할때 arr1[p1++] 이렇게 해서 정답은 나왔는데

제가 생각하기엔 p1++은 p1= p1+1 이라 p1=0+1이 돼서 p1이 arr1의 1번째 인덱스를 가리키기 때문에 arr1의 0번째 인덱스는 출력에 포함이 안되야 하는거 아닌가요?

다른것도 마찬가지로요

퀴즈

45%나 틀려요. 한번 도전해보세요!

투 포인터 또는 슬라이딩 윈도우 기법이 중첩 반복문보다 효율적인 주된 이유는 무엇일까요?

더 적은 메모리를 사용해서일까요?

코드가 더 짧아져서일까요?

대부분의 경우 O(N) 시간 복잡도를 달성해서일까요?

입력 데이터 크기에 영향을 받지 않아서일까요?

답변 1

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

answer.push(arr[p1++])는 arr[p1]값을 먼저 push한 후에 p1값이 1증가합니다.

만약 answer.push(arr[++p1]) 으로 하면 님 말처럼 p1이 먼저 1증가하고 push를 해서 0번 인덱스를 건너뛰고 1번부터 push합니다.

csh9411님의 프로필 이미지
csh9411

작성한 질문수

질문하기