ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฌธ์ œ

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์ด ๋œ ๋‘ ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ๋‘ ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํ•ฉ์ณ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

๋ฌธ์ œํ’€์ด

๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋‘ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ํ•ฉ์น˜๊ธฐ ์œ„ํ•ด ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด 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));

 

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2024/10   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ