Merge Sorted Array

๊ฐœ๋А๋ฆผ...


๐Ÿ“Œ์ฝ”๋“œ ์†๋„๊ฐ€ ๋‚ฎ์€ ์ด์œ 

ํ˜„์žฌ ์ฝ”๋“œ์—์„œ ์†๋„๊ฐ€ ๋‚ฎ์€ ์ด์œ  ๋Š” Arrays.sort(nums1) ๋•Œ๋ฌธ์ž„.

์ด ์ฝ”๋“œ์—์„œ Arrays.sort(nums1) ๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ O((m+n)log(m+n))O((m+n) log(m + n)) ์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง.

์ฆ‰, ๊ธฐ์กด์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•˜์ง€ ์•Š๊ณ , ๊ฐ•์ œ๋กœ ๋‹ค์‹œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹ ์ด๋ผ ๋น„ํšจ์œจ ์ ์ž„.


โœ… ๊ฐœ์„  ๋ฐฉ๋ฒ•: ๋ณ‘ํ•ฉ ์ •๋ ฌ (Two Pointers) ํ™œ์šฉ

์ด ๋ฌธ์ œ๋Š” ๋‘ ๊ฐœ์˜ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ณผ์ • ์ด๋ฏ€๋กœ, ์ด๋ฏธ ์ •๋ ฌ๋œ ๋‘ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•ด ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ์‹(์—ญ์ˆœ ๋ณ‘ํ•ฉ) ์„ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์ ์ž„.

โŒ›์‹œ๊ฐ„ ๋ณต์žก๋„ : O(m+n)O(m + n) (์ •๋ ฌ ์—†์ด ๋ณ‘ํ•ฉ๋งŒ ์ˆ˜ํ–‰)

๐Ÿ“Œ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)O(1) (์ถ”๊ฐ€ ๊ณต๊ฐ„ ์—†์ด nums1 ๋‚ด๋ถ€์—์„œ ์ง์ ‘ ๋ณ‘ํ•ฉ)


๐Ÿš€ ๊ฐœ์„ ๋œ ์ฝ”๋“œ(Two Pointers, ์—ญ์ˆœ ๋ณ‘ํ•ฉ)

๐Ÿ“Œ ์ฝ”๋“œ ์„ค๋ช…

  1. ํฌ์ธํ„ฐ 3๊ฐœ ์„ค์ •

    1. p1 = m - 1 : nums1 ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ ์œ„์น˜ (์œ ํšจ ๋ฐ์ดํ„ฐ ๋ฒ”์œ„)

    2. p2 = n - 1 : nums2 ์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ ์œ„์น˜

    3. p = m + n - 1 : nums1 ์˜ ๋งˆ์ง€๋ง‰ ๋นˆ ๊ณต๊ฐ„๋ถ€ํ„ฐ ์ฑ„์šฐ๊ธฐ ์‹œ์ž‘

  2. **๋’ค์—์„œ๋ถ€ํ„ฐ ํฐ ๊ฐ’์„ ์„ ํƒํ•˜์—ฌ ๋ฐฐ์น˜(O(m+n)O(m+n))

    1. nums1[p1] ๊ณผ nums2[p2] ๋ฅผ ๋น„๊ต

    2. ํฐ ๊ฐ’์„ nums1[p] ์— ๋ฐฐ์น˜ ํ›„ ํ•ด๋‹น ํฌ์ธํ„ฐ ๊ฐ์†Œ

    3. p1 ๋˜๋Š” p2 ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

  3. ๋‚จ์€ nums2 ์š”์†Œ ์ฒ˜๋ฆฌ

    1. nums2 ์˜ ๋‚จ์€ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด nums1 ์•ž๋ถ€๋ถ„์— ๋ณต์‚ฌ


๐Ÿ“Œ ์™œ ๋” ๋น ๋ฅธ๊ฐ€?

  • ์ •๋ ฌ (O((m+n)log(m+n))O((m+n) log(m+n))) ์„ ์ œ๊ฑฐํ•˜๊ณ  O(m+n) ์œผ๋กœ ์ตœ์ ํ™”

  • ํ•œ ๋ฒˆ์˜ ๋ฐ˜๋ณต๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์ถ”๊ฐ€ ๊ณต๊ฐ„(O(1)) ์—†์ด ํ•ด๊ฒฐ

  • ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์„ ํ™œ์šฉํ•˜์—ฌ ํšจ์œจ์  ์ •๋ ฌ ์œ ์ง€


๐Ÿš€์„ฑ๋Šฅ์ฐจ์ด

์ฝ”๋“œ ๋ฐฉ์‹
์‹œ๊ฐ„ ๋ณต์žก๋„
๊ณต๊ฐ„ ๋ณต์žก๋„
ํŠน์ง•

๊ธฐ์กด ์ฝ”๋“œ (Arrays.sort())

O((m+n) log(m+n))

O(1)

์ •๋ ฌ์„ ๋ฌด์กฐ๊ฑด ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๋น„ํšจ์œจ์ 

๊ฐœ์„  ์ฝ”๋“œ (Two Pointers)

O(m + n)

O(1)

์ง์ ‘ ๋ณ‘ํ•ฉํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ •๋ ฌ ์ œ๊ฑฐ

๐Ÿ‘‰ ๋ฐฐ์—ด์ด ์ •๋ ฌ๋œ ์ƒํƒœ์ด๋ฏ€๋กœ, ๋ถˆํ•„์š”ํ•œ sort()๋ฅผ ์—†์• ๊ณ  ๋’ค์—์„œ๋ถ€ํ„ฐ ๋ณ‘ํ•ฉํ•˜๋ฉด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋จ! ๐Ÿš€

Last updated