[LeetCode] 147. Insertion Sort List

Minjiยท2024๋…„ 1์›” 5์ผ

Insertion Sort List - LeetCode

๋ฌธ์ œ ์ ‘๊ทผ ๐Ÿค”


๐Ÿ’กย ์‚ฝ์ž… ์ •๋ ฌ (insertion sort)

์ž๋ฃŒ ๋ฐฐ์—ด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ๋ฐฐ์—ด ๋ถ€๋ถ„๊ณผ ๋น„๊ตํ•˜์—ฌ, ์ž์‹ ์˜ ์œ„์น˜๋ฅผ ์ฐพ์•„ ์‚ฝ์ž…ํ•จ์œผ๋กœ์จ ์ •๋ ฌ์„ ์™„์„ฑํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

  • ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ๋ฌธ์ œ
  • ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•  ๋นˆ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•œ๋‹ค. ์ด๋ฅผ dummy ๋ผ ํ•˜์ž.
  • ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ, ๊ฐ ๋…ธ๋“œ๋งˆ๋‹คย dummy์— ์‚ฝ์ž…ํ•  ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค.
  • ์ˆœํšŒ๊ฐ€ ๋๋‚˜๋ฉด,ย dummy ๋Š” ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋œ๋‹ค.


๋†“์ณค๋˜ ๋ถ€๋ถ„ ๐Ÿ˜…


  • ์ฒ˜์Œ์— ๋ฐ˜์ชฝ์งœ๋ฆฌ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋˜์–ด์„œ ์ฐพ์•„๋ณด๋‹ˆ ๋นˆ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๐Ÿฅน


์ฝ”๋“œ ๐Ÿ˜


ํŒŒ์ด์ฌ ์ฝ”๋“œ(64 ms)

class Solution:
    def insertionSortList(self, head: ListNode) -> ListNode:
        dummy = curr = ListNode()
        while head:
            while curr.next and curr.next.val < head.val:
                curr = curr.next
            curr.next, head.next, head = head, curr.next, head.next
            if head and curr.val > head.val:
                curr = dummy
        return dummy.next
profile
๊ธฐ๋ก์„ ์ข‹์•„ํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€