728x90
๋ฐ์ํ
๐ ๋ฌธ์
A, B ๋ ๊ฐ์ ์งํฉ์ด ์ฃผ์ด์ง๋ฉด ๋ ์งํฉ์ ๊ณตํต ์์๋ฅผ ์ถ์ถํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๐ ํ์ด
๐ง๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ
- arr1์ sort() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- arr1์ ํ๋์ฉ ๋๋ฉด์ includes() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ํด๋น ๊ฐ์ด arr2์ ์กด์ฌ(true)ํ๋ค๋ฉด answer์ ๊ฐ์ ์ฝ์ ํ๋ค.
function solution(arr1, arr2) {
const answer = [];
arr1.sort((a, b) => a - b);
for (let x of arr1) {
if (arr2.includes(x)) answer.push(x);
}
return answer;
}
let a = [1, 3, 9, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));
๐จ๐ผ๐ซ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
- arr1, arr2 ๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ํ ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
- arr1[p1], arr2[p2]์ ๊ฐ์ด ๊ฐ๋ค๋ฉด answer์ ํด๋น ๊ฐ์ ์ฝ์ ํ๊ณ ํฌ์ธํฐ p1, p2 ๋ชจ๋ 1์ฉ ์ฆ๊ฐ์ํจ๋ค.
- arr1[p1]๋ณด๋ค arr2[p2]์ ๊ฐ์ด ํฌ๋ค๋ฉด ํฌ์ธํฐ p1์ 1 ์ฆ๊ฐ์ํจ๋ค.
- arr1[p1] ๋ณด๋ค arr2[p2]์ ๊ฐ์ด ์๋ค๋ฉด ํฌ์ธํฐ p2๋ฅผ 1 ์ฆ๊ฐ์ํจ๋ค.
- ํฌ์ธํฐ p1, p2 ๋ ์ค์ ํ๋๋ผ๋ ํด๋น ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ ๋น๊ตํ ๊ฐ์ด ๋ ์ด์ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก ์ข ๋ฃํ๋ค.
function solution(arr1, arr2) {
let answer = [];
arr1.sort((a, b) => a - b);
arr2.sort((a, b) => a - b);
let p1 = (p2 = 0);
while (p1 < arr1.length && p2 < arr2.length) {
if (arr1[p1] === arr2[p2]) {
answer.push(arr1[p1++]);
p2++;
}
else if (arr1[p1] < arr2[p2]) p1++;
else p2++;
}
return answer;
}
let a = [1, 3, 9, 5, 2];
let b = [3, 2, 5, 7, 8];
console.log(solution(a, b));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 5] 04 - ์ฐ์ ๋ถ๋ถ์์ด 2 (0) | 2022.09.19 |
---|---|
[JavaScript/section 5] 03 - ์ฐ์ ๋ถ๋ถ ์์ด 1 (0) | 2022.09.19 |
[JavaScript/section 5] 01 - ๋ ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2022.09.17 |
[JavaScript/section 4] 05 - K๋ฒ์งธ ํฐ ์ (0) | 2022.09.16 |
[JavaScript/section 4] 04 - ์กธ์ ์ ๋ฌผ (0) | 2022.09.15 |