Logo
Hyunsu Blog
book

๐Ÿ“†Published :Nov 21, 2023 โ€ข

๐Ÿ“†Updated :Nov 21, 2023 โ€ข

โ˜•๏ธ2min

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””๋ฅผ ์‹œ์ž‘ํ•˜๋‹ค

๋“ค์–ด๊ฐ€๋ฉฐ

  • ์ตœ๊ทผ ํ˜ผ์ž์„œ ์ค€๋น„ํ•˜๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๊ฐ€ ์‹œ๊ฐ„ ๋Œ€๋น„ ์ง‘์ค‘์ด ์ž˜์•ˆ๋˜๊ณ  ์ ์  ๋Š˜์–ด ์ง€๊ณ  ์žˆ์—ˆ๋‹ค. ๋งˆ์นจ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””์›์„ ๋ชจ์ง‘ํ•˜๋Š” ๊ธ€์ด ๋ˆˆ์— ๋“ค์–ด์™”๊ณ , ์ฃผ์ € ์—†์ด ์‹ ์ฒญํ•˜์˜€๋Š”๋ฐ ๋ฉค๋ฒ„๊ฐ€ ๋˜์—ˆ๋‹ค. (์•„๋งˆ ๋ฌธ๋‹ซ๊ณ  ๋“ค์–ด์˜จ ๋ฉค๋ฒ„๊ฐ€ ์•„๋‹๊นŒ ํ•œ๋‹ค)
  • ์Šคํ„ฐ๋””๋Š” ์ตœ๊ทผ ์ถœ๊ฐ„๋œ ์ฑ… ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž๋˜๊ธฐ์˜ ์ถœํŒ์‚ฌ ๊ณจ๋“  ๋ž˜๋น—์—์„œ ์Šคํ„ฐ๋”” ์žฅ์„ ๋ชจ์ง‘ํ•˜์—ฌ ์šด์˜์ด ๋˜๋Š” ๋“ฏ ํ–ˆ๋‹ค. ์ฑ…์€ ์ฃผ๋กœ ํŒŒ์ด์ฌ ์–ธ์–ด(JS๊ฐ€ ์ฃผ ์–ธ์–ด์ธ ๋‚˜) ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์ง€๋งŒ, ์–ธ์–ด์™€ ์ƒ๊ด€์—†์ด ์Šคํ„ฐ๋”” ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋™๊ธฐ๋ถ€์—ฌ, ๋‹ค์–‘ํ•œ ๊ด€์ , ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•œ ๊ฐœ์„  ๋“ฑ ์ด์ ์ด ๋งŽ์„ ๊ฒƒ์ด๋ผ๊ณ  ๋ฏฟ๊ณ  ์Šคํ„ฐ๋””๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ์ฐฌ์ฐฌํžˆ ์ฑ…์„ ๋ณด๋˜ ์ค‘, p96์˜ ๋ฐ•ํ…Œ๋ฆฌ์•„ ์†Œ๋ฉธ์‹œ๊ธฐ์—์„œ ์กฐ๊ฑด๋ฌธ์ด ๋ฌธ์žฅ์˜ ์˜๋„์™€ ์กฐ๊ธˆ ๋‹ค๋ฅธ๊ฒƒ ๊ฐ™์•„ ๋„ค์ด๋ฒ„์นดํŽ˜์— ๊ธ€์„ ์˜ฌ๋ ธ๋Š”๋ฐ ์ €์ž๋‹˜์ด ํ™•์ธํ•˜์‹œ๊ณ  ์ •์˜คํ‘œ์— ์˜ฌ๋ผ๊ฐ€๋Š” ์—ํ”ผ์†Œ๋“œ๋„ ์žˆ์—ˆ๋‹ค. ๐Ÿ™‚ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž๋˜๊ธฐ p64.๋ฐ•ํ…Œ๋ฆฌ์•„ ์†Œ๋ฉธ์‹œ๊ธฐ ์ˆ˜์‹์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ
  • ์ด ๊ธ€์€ ๊ณจ๋“ ๋ž˜๋น— ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ ํŒŒ์ด์ฌ ํŽธ์˜ 0์žฅ ~ 4์žฅ ์จ๋จธ๋ฆฌ์ž…๋‹ˆ๋‹ค.

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํšจ์œจ์ ์œผ๋กœ ์ค€๋น„ํ•˜๊ธฐ

  • ์ฑ…์—์„œ๋„ ๋ช…์‹œ ๋˜์–ด ์žˆ์ง€๋งŒ ํŠน์ • ์–ธ์–ด์˜ ์ค‘์š”์„ฑ์„ ๋งํ•˜์ง„ ์•Š๋Š”๋‹ค. ์ž์‹ ์ด ๊ฐ€์žฅ ์ž˜ ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๊ฐ€ ์ข‹๋‹ค!.
  • ๋ฌธ์ œ ํ’€์ด ๋Šฅ๋ ฅ์„ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•˜๋‹ค.
    • ์ด๋ฅผ ์œ„ํ•ด ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด์„œ ๋ถ„์„, ์ž…๋ ฅ๊ฐ’ ํŒŒ์•…, ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฆฌ.
    • ์ œ์•ฝ์‚ฌํ•ญ์„ ์œ ์‹ฌํžˆ ํŒŒ์•…ํ•ด์•ผ ํ•˜๊ณ  ์ด๋ฅผ ๊ณ ๋ คํ•ด์„œ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์—ฐ์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์˜์‚ฌ์ฝ”๋“œ๋กœ ์„ค๊ณ„ํ•˜๋Š” ์—ฐ์Šต์ด ํ•„์š”ํ•˜๋‹ค.
    • ์˜์‚ฌ์ฝ”๋“œ๋Š” ์„ธ๋ถ€๊ตฌํ˜„์ด ์•„๋‹Œ ๋™์ž‘์ค‘์‹ฌ์œผ๋กœ!
    • ๋ฌธ์ œ ํ•ด๊ฒฐ ์ˆœ์„œ๋กœ ์ž‘์„ฑ.
    • ์ถฉ๋ถ„ํ•œ ํ…Œ์ŠคํŠธ.

์‹œ๊ฐ„๋ณต์žก๋„

  • ์ž…๋ ฅ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ์—ฐ์‚ฐ ํšŸ์ˆ˜์˜ ์ถ”์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ ๊ทผ์  ํ‘œ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ์‚ฌ์‹ค ์ฑ…์˜ ๋‚ด์šฉ์œผ๋กœ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๋ฆฌ์„œ์น˜ ํ›„ ์ •๋ฆฌํ•œ ๊ฒฐ๊ณผ๋Š” ์ด๋ ‡๋‹ค.

์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•(ๆผธ่ฟ‘ ่กจ่จ˜ๆณ•,ย ์˜์–ด:ย asymptotic notation)์€ ์–ด๋–ค ํ•จ์ˆ˜์˜ ์ฆ๊ฐ€ ์–‘์ƒ์„ ๋‹ค๋ฅธ ํ•จ์ˆ˜์™€์˜ ๋น„๊ต๋กœ ํ‘œํ˜„ํ•˜๋Š”ย ์ˆ˜๋ก ๊ณผย ํ•ด์„ํ•™์˜ ๋ฐฉ๋ฒ•์ด๋‹ค.ย ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ย ๋ณต์žก๋„๋ฅผ ๋‹จ์ˆœํ™”ํ•  ๋•Œ๋‚˜ย ๋ฌดํ•œ๊ธ‰์ˆ˜์˜ ๋’ท๋ถ€๋ถ„์„ ๊ฐ„์†Œํ™”ํ•  ๋•Œ ์“ฐ์ธ๋‹ค. -์œ„ํ‚ค๋ฐฑ๊ณผ-

  • ์ด ์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•์€ ์ ๊ทผ์  ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ด์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ์˜ ์ ๊ทผ์  ์‹คํ–‰ ์‹œ๊ฐ„์ด๋ž€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ๊ฐ’N์ด ์ปค์งˆ ๋•Œ, ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ถ”์ด๋ฅผ ๋งํ•œ๋‹ค.
  • ํ•จ์ˆ˜์˜ ์‹คํ–‰ ์‹œ๊ฐ„์˜ ์ถ”์ด๋ž€ ๋ง์€ ์—ฐ์‚ฐ์ด ๋นจ๋ฆฌ ๋๋‚  ์ˆ˜๋„ ์žˆ๊ณ , ๋Šฆ๊ฒŒ ๋๋‚  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ตœ์„ ์˜ ๊ฒฝ์šฐ (= ๊ฐ€์žฅ ๋นจ๋ฆฌ ์‹คํ–‰ ๋  ๋•Œ, ์—ฐ์‚ฐ์ด ๋นจ๋ฆฌ ๋๋‚  ๋•Œ ) ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๊ณ ,
  • ์ตœ์•…์˜ ๊ฒฝ์šฐ (= ๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์‹คํ–‰๋  ๋•Œ, ์—ฐ์‚ฐ์ด ๋Šฆ๊ฒŒ ๋๋‚  ๋•Œ) ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๊ณ ,
  • ํ‰๊ท ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค.
  • ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ ๊ทผํ‘œ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋‹ค. ์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•์€ (๋น…์˜ค, ๋น…์˜ค๋ฉ”๊ฐ€, ์„ธํƒ€ ๋“ฑ ) ์ด ์žˆ๋‹ค.
  • ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์„ , ์ตœ์•…, ํ‰๊ท ์˜ ๊ฒฝ์šฐ์—์„œ ์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ์ƒํ•œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (๊ฐ€์žฅ ๋Šฆ๊ฒŒ ์‹คํ–‰ ๋  ๋•Œ)
  • ์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ•์€ ์ตœ์„ , ์ตœ์•…, ํ‰๊ท ์˜ ๊ฒฝ์šฐ์—์„œ ์ˆ˜ํ–‰์‹œ๊ฐ„์˜ ํ•˜ํ•œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (๊ฐ€์žฅ ๋นจ๋ฆฌ ์‹คํ–‰ ๋  ๋•Œ)
  • ๊ฒฐ๋ก ์€ ์ž…๋ ฅ๊ฐ’/๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ํด ๋•Œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์— ๋”ฐ๋ผ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ์ฐจ์ด๊ฐ€ ๋‚˜๋‹ˆ ๊ณ ๋ คํ•ด์„œ ๋ฌธ์ œ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค.

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐ๋“ค

์˜ˆ์ œ 1)

def solution(n): count= 0 for i in range(n): for j in range(n): count+=1 // O(n^2) for k in range(n): count+=1 // O(n) for i in range(2*n): count+=1 // O(2n) for i in range(5): count+=1 // O(5)

์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋ณ€ํ•˜๋Š” ์ตœ๊ณ ์ฐจํ•ญ์ธ O(n^2) ๊ฐ€ ์‹œ๊ฐ„๋ณต์žก๋„์ด๋‹ค.

์˜ˆ์ œ2) N๋ฒˆ์งธ ์ค„๊นŒ์ง€ ๋ณ‘ 1๊ฐœ๋ถ€ํ„ฐ N๊ฐœ๊นŒ์ง€ ๋Š˜๋ ค๊ฐ€๋ฉฐ ์ถœ๋ ฅํ–ˆ์„ ๋•Œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ?

* * * * * * * * * * * * * * * for timecomplexity
  • ๋ณ„์„ n๊ฐœ์˜ ์ค„๋งŒํผ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ์ˆœํšŒํ•  loop์ด ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.
  • loop์—์„œ์˜ i ๊ฐ€ ๊ฐ ํ•œ์ค„์ด ๋  ๊ฒƒ์ด๊ณ , ํ•œ ์ค„๋งˆ๋‹ค *์„ ํ”„๋ฆฐํŠธ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, i ๊ฐœ ๋งŒํผ ํ”„๋ฆฐํŠธ ํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰ O(i)๋ฒˆ์˜ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  • ํ•˜๋“œ์ฝ”๋”ฉ์œผ๋กœ * ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์—ฐ์†๋œ ์„ ํ”„๋ฆฐํŠธํ•˜๊ธฐ ์œ„ํ•ด์„  ์—ฐ์‚ฐ์ด * ๊ฐœ์ˆ˜ ๋งŒํผ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • n=5๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, ํ•œ์ค„์— i ๊ฐœ ๋งŒํผ ๋ณ„์„ ์ฐ๋Š”๋‹ค๋ฉด ์—ฐ์‚ฐ ํšŸ์ˆ˜๋Š” i ๋ฒˆ์งธ ์ค„์—” O(i) ๋งŒํผ ์—ฐ์‚ฐ์ด ์ด๋ฃจ์–ด ์ง„๋‹ค.
  • ์ด O(1)๋ถ€ํ„ฐ O(n)๊นŒ์ง€์˜ ํ•ฉ์ด ์ด ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋˜๊ณ , ์ด๋ฅผ ๊ฐ€์šฐ์Šค ๋ง์…ˆ์„ ์ด์šฉํ•œ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ์ตœ๊ณ  ์ฐจํ•ญ์ธ O(n2)์ด ๋œ๋‹ค.

์˜ˆ์ œ3) ์ดˆ๊ธฐ ๋ฐ•ํ…Œ๋ฆฌ์•„ ์„ธํฌ ๊ฐœ์ˆ˜๊ฐ€ N =16 ์ผ ๋•Œ, ํ•ด๋งˆ๋‹ค ์„ธํฌ๊ฐœ์ˆ˜๊ฐ€ ์ด์ „ ์„ธํฌ๊ฐœ์ˆ˜์˜ ๋ฐ˜์œผ๋กœ ์ค€๋‹ค๋ฉด, ๋ชจ๋“  ๋ฐ•ํ…Œ๋ฆฌ์•„๊ฐ€ ์ฃฝ์„ ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š”?

log timecomplexity

์ฃผ์–ด์ง„ ์ž…๋ ฅ๊ฐ’ n = 16 ์—์„œ nโ‰ค0 ์ด ๋˜๊ธฐ๊นŒ์ง€ ๋ช‡๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ–ˆ๋Š”์ง€๋ฅผ ์•Œ์•„๋‚ด๋Š”๊ฒŒ ๋ชฉํ‘œ์ด๋‹ค. ์œ„์˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด 5๋…„์ด๋ฉด ๋ฐ•ํ…Œ๋ฆฌ์•„๊ฐ€ ์†Œ๋ฉธ ๋œ๋‹ค.

  • 1๋…„๋งˆ๋‹ค N์ด 1/2 ๋งŒํผ ์ค„์–ด ๋“ ๋‹ค.
  • 5๋…„์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์—์„œ i= 5๊ฐ€ ๋˜๋ฉด 0 ์ด ๋œ๋‹ค.
  • ๋ฐ•ํ…Œ๋ฆฌ์•„์˜ ์†Œ๋ฉธ์‹œํ‚ค๋Š” ๋ฐ•ํ…Œ๋ฆฌ์•„์˜ ์ˆ˜๊ฐ€ 1๋ณด๋‹ค ์ž‘์•„์งˆ ๋•Œ์ธ๋ฐ, ์ด๋ฅผ ์ˆ˜์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    (1/2)i * N < 1

  • ์—ฌ๊ธฐ์„œ i๋Š” ์—ฐ๋„(๋…„)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, (1/2)^i๋Š” ์—ฐ๋„๋งˆ๋‹ค ๋ฐ•ํ…Œ๋ฆฌ์•„ ๊ฐœ์ˆ˜๊ฐ€ ๋ฐ˜๊ฐ๋˜๋Š” ๋น„์œจ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • i๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜๋ก ๋ฐ•ํ…Œ๋ฆฌ์•„ ๊ฐœ์ˆ˜ N ์€ ๊ฐ์†Œํ•œ๋‹ค.
  • i๋ฅผ ๊ตฌํ•˜๋Š” ์ˆ˜์‹์ด ๊ณง ๋ณต์žก๋„๊ฐ€ ๋œ๋‹ค.

i > log2(N)

  • ์–ด๋–ค N์˜ ๊ฐ’์ด ๋ฐ˜์œผ๋กœ ์ค„์–ด๋“œ๋Š” ๋™์ž‘์ด ์žˆ๋‹ค๋ฉด, ์‹œ๊ฐ„๋ณต์žก๋„๋Š” log(N) ์ด๋ผ๊ณ  ๊ฐ„์ฃผํ•œ๋‹ค.

Hi, I'm Hyunsu ๐Ÿ‘‹

Profile Image

์•ˆ๋…•ํ•˜์„ธ์š”. ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฃผํ˜„์ˆ˜์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํ’๋ถ€ํ•˜๊ณ  ๊ฐ€์น˜ ์žˆ๋Š” ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ์ผ์— ๋ฟŒ๋“ฏํ•จ์„ ๋Š๋‚๋‹ˆ๋‹ค.

์˜ต์‹œ๋””์–ธ(Obsidian)์—์„œ ํ˜„์žฌ ๋ธ”๋กœ๊ทธ๋กœ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์˜ฎ๊ธฐ๋Š” ๊ณผ์ •์— ์žˆ์–ด์š”. โ˜•๏ธ ๐Ÿ‘ฉโ€๐Ÿ’ป โ›ท

Github on ViewReach Me Out