ํฐ์คํ ๋ฆฌ ๋ทฐ
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]๋ ๋ฐฐ์ด ํฉ์น๊ธฐ
choi95 2021. 7. 2. 09:57๋ฌธ์
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ด ๋ ๋ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ฉด ๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ํฉ์ณ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ฌธ์ ํ์ด
๊ฐ๊ธฐ ๋ค๋ฅธ ๋ ๋ฐฐ์ด์ ํ๋์ ๋ฐฐ์ด๋ก ํฉ์น๊ธฐ ์ํด ์คํ๋ ๋ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํด Array.sort() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
์ฝ๋
function solution(arr1, arr2) {
let answer = [...arr1, ...arr2];
answer.sort((a, b) => a - b);
return answer;
}
let arr1 = [1, 3, 5];
let arr2 = [2, 3, 6, 7, 9]
console.log(solution(arr1, arr2));
๋ฌธ์ ํ์ด2
Array.sort() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๋ O(n × logn)์ด์ด์ ๋นํจ์จ์ ์ด๋ค.
์ด๋ฅผ ๋์ ์ ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ณ ์ ํ๋ค.ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋จ์ ๋ฐ๋ณต๋ฌธ์ k๋ฒ ๋งํผ(ํด๋น ๋ฌธ์ ์์๋ 2๋ฒ)๋ง ๋๋ฆฌ๋ฉด ๋๊ธฐ ๋๋ฌธ์ O(n+m)์ ์๊ฐ ๋ณต์ก๋๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ ๋ ํจ์จ์ ์ด๋ค.
(ํด๋น ๋ฌธ์ ์์๋ ์คํ๋ ๋ ์ฐ์ฐ์ ํ์๊ธฐ ๋๋ฌธ์ n์ ๊ฐ์ด 1์ด๊ธฐ ๋๋ฌธ์ ๊ทธ ์ฐจ์ด๊ฐ ๋ฏธ๋นํ๊ธด ํ๋ค)
์์์ ๋ ํฌ์ธํฐ ๋ณ์ p1๊ณผ P2๋ฅผ 0์ผ๋ก ์ด๊ธฐํ ํด์ค ๋ค ๊ฐ ํด๋น ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ํํ๋ฉฐ ๊ฐ์ ๋น๊ตํจ์ผ๋ก์จ,
์ค๋ฆ์ฐจ์์ผ๋ก ๊ตฌํํ ์ ์๋ค.
์ฝ๋
function solution(arr1, arr2) {
let answer = [];
let n = arr1.length;
let m = arr2.length;
let p1 = 0;
let p2 = 0;
while (p1 < n && p2 < m) {
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;
}
let arr1 = [1, 3, 5];
let arr2 = [2, 3, 6, 7, 9];
console.log(solution(arr1, arr2));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]์ฐ์ ๋ถ๋ถ ์์ด(1) (0) | 2021.07.03 |
---|---|
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]๊ณตํต์์ ๊ตฌํ๊ธฐ (0) | 2021.07.02 |
[์์ ํ์]k๋ฒ์งธ ํฐ ์ (0) | 2021.07.01 |
[์์ ํ์]์กธ์ ์ ๋ฌผ (0) | 2021.06.04 |
[์์ ํ์]๋ฉํ ๋ง (0) | 2021.06.03 |