투포인트란?
투 포인터란? 이번 글에서는 Two pointers technique (algorithm)을 설명해보도록 하겠습니다. 일단 이름 그대로 두 가지 포인터를 사용하여 문자열이나 배열(또는 리스트)에서 원하는 값을 찾거나 반복문을 써야 할 때 쓰기 좋은 방식입니다.
두 배열 합치기 : 투포인트 기본 문제 두가지 배열를 순서대로 재배열 시키는 문제
//me
function solution(a1 , a2){
let asewer = a1.concat(a2).sort((a,b)=>a -b )
return asewer
};
// 강의
function solution2(arr1, arr2){
let answer=[];
let n=arr1.length;
let m=arr2.length;
let p1=p2=0;
while(p1<n && p2<m){
// arr1[p1++] arr1[p1]후 에 p1++ 한다는 의미 이다.
if(arr1[p1]<=arr2[p2]) answer.push(arr1[p1++]);
else answer.push(arr2[p2++]);
}
//만약 한쪽이 끝나면 여기서 나머지 작업한다. 둘다
while(p1<n) answer.push(arr1[p1++]);
while(p2<m) answer.push(arr2[p2++]);
return answer;
}
const arr11 = [1,3,10];
const arr22 = [2,3,6,7,9];
console.log(solution(arr11 , arr22));
console.log(solution2(arr11 , arr22));
while문
for문이 정해진 횟수만큼 반복한다면, while 문은 조건식이 true 일 경우에 계속해서 반복합니다. 조건식에는 비교 또는 논리 연산식이 주로오는데, 조건식이 false가 되면 반복 행위를 멈추고 while문을 종료합니다.
부족한 부분 댓글로 남겨주세요
'개발일기 > 알고리즘' 카테고리의 다른 글
연속부분수열1(Two Pointers Algorithm) (0) | 2022.07.29 |
---|---|
공통원소구하기(Two Pointers Algorithm) (0) | 2022.07.28 |
백준 알고리즘 2588번 문제 (0) | 2021.11.19 |
같은 숫자는 싫어 (0) | 2021.11.11 |
3진법 뒤집기 (0) | 2021.11.10 |