์•Œ๊ณ ๋ฆฌ์ฆ˜๐Ÿฅš/๊ฐœ๋…

[ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ฐœ๋…] 1-1. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ - ๋Ÿฌ๋„ˆ

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 5. 4. 23:45
728x90

Runner ๊ธฐ๋ฒ•

Runner ๊ธฐ๋ฒ•์€ '์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์Šค๋Ÿฌ์šด'  ํ’€์ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ

๋น ๋ฅธ ๋Ÿฌ๋„ˆ, ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ 2๊ฐœ์˜ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•œ๋‹ค.

  • ๋น ๋ฅธ ๋Ÿฌ๋„ˆ(fast runner) : ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๋ณด๋‹ค 2๋ฐฐ ์•ž์„ ๋‹ค (๋‘ ์นธ์”ฉ ์ด๋™)
  • ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ(slow runner) : ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๋ณด๋‹ค 2๋ฐฐ ๋Š๋ฆฌ๊ฒŒ ๋‚˜์•„๊ฐ„๋‹ค (ํ•œ ์นธ์”ฉ ์ด๋™)

 

๋น ๋ฅธ ๋Ÿฌ๋„ˆ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์•ž์ชฝ์˜ ๋…ธ๋“œ์˜ ์ ˆ๋ฐ˜์„ ๋ชฉ์ ์— ์•Œ๋งž์€ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ, 

๋Š๋ฆฐ ๋„ˆ๋Ÿฌ๋Š” ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋’ค์ชฝ์˜ ๋…ธ๋“œ์˜ ์ ˆ๋ฐ˜์„ ๋น„๊ต๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

(ํ”ํžˆ ์‚ฌ์šฉํ•˜๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์ด์œ ๊ฐ€ ๋น„์Šทํ•˜๋‹ค)

 

์ž์„ธํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์‚ดํŽด๋ณด์ž.

 

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ

ํ™€์ˆ˜์ผ ๋•Œ๋Š” ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•œ๋‹ค.

 

โ‘  ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ while(fast_runner!=None):

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ 1) ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ

 

 

โ‘ก ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ(๋Š๋ฆฐ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์šด๋ฐ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ด)

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ 2) ๋Š๋ฆฐ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์šด๋ฐ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ

 

 

โ‘ข ๋Š๋ฆฐ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ์ดํ›„ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ while(slow_runner!=None):

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ํ™€์ˆ˜์ผ ๋•Œ 3) ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ

 

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ

์ง์ˆ˜์ผ ๋•Œ๋Š” ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ•œ๋‹ค.

 

โ‘  ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ while(fast_runner!=None):

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ 1) ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ

 

 

โ‘ก ๋Š๋ฆฐ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ค‘๊ฐ„ ์ดํ›„ ๋…ธ๋“œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒฝ์šฐ  while(slow_runner!=None):

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ 2) ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๊ฒฝ์šฐ

 

 

์ •๋ฆฌ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ผ ๋•Œ

โ’ง ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ์šฐ while(fast_runner!=None):

  • ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๋ฅผ ์ด์šฉํ•ด ์—ฐ์‚ฐ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ

 

โ‘ต ๋น ๋ฅธ ๋Ÿฌ๋„ˆ๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ๋…ธ๋“œ๋„ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

  • ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๊ธธ์ด๋ฅผ ํ™•์ธํ•ด์„œ ํ™€์ˆ˜์ด๋ฉด if(len(linked_list)%2!=0):  
  • ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ค‘์•™์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ์›ํ•˜๋Š” ์—ฐ์‚ฐ์„ ์œ„ํ•œ ์กฐ์น˜๋ฅผ ํ•œ ๋’ค, ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๋ฅผ ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ด๋™

 

โ‘ถ ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•œ ๊ฒฝ์šฐ while(fast_runner!=None):

  • ๋Š๋ฆฐ ๋Ÿฌ๋„ˆ์™€ ๋งŒ๋“ค์–ด์ง„ ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ํ™œ์šฉํ•ด ๋น„๊ต ์—ฐ์‚ฐ ์ˆ˜ํ–‰

 

 

๋Ÿฌ๋„ˆ ์‚ฌ์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์˜ˆ์ œ

[LeetCode]

234. palindrome-linked-list

 

Palindrome Linked List - LeetCode

Can you solve this real interview question? Palindrome Linked List - Given the head of a singly linked list, return true if it is a palindrome or false otherwise.   Example 1: [https://assets.leetcode.com/uploads/2021/03/03/pal1linked-list.jpg] Input: hea

leetcode.com

๋ฌธ์ œํ’€์ด https://steady-eschoi.tistory.com/40

 

 

 

728x90