Coding Planet

μ‹œκ°„λ³΅μž‘λ„(Time Complexity)와 κ³΅κ°„λ³΅μž‘λ„(Space Complexity) λ³Έλ¬Έ

🎁 μ½”λ”©ν…ŒμŠ€νŠΈ/μ•Œκ³ λ¦¬μ¦˜

μ‹œκ°„λ³΅μž‘λ„(Time Complexity)와 κ³΅κ°„λ³΅μž‘λ„(Space Complexity)

jhj.sharon 2023. 8. 21. 15:40
λ°˜μ‘ν˜•

| μ‹œκ°„λ³΅μž‘λ„(Time Complexity)λž€?

  • μ‹œκ°„ λ³΅μž‘λ„λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 κ±Έλ¦¬λŠ” μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” 척도이닀.
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹€ν–‰ μ‹œκ°„μ€ μž…λ ₯ λ°μ΄ν„°μ˜ ν¬κΈ°λ‚˜ νŠΉμ„±μ— 따라 λ‹€λ₯Ό 수 있기 λ•Œλ¬Έμ—, μ‹œκ°„ λ³΅μž‘λ„λŠ” 일반적으둜 μ΅œμ•…μ˜ 경우, 평균 경우, μ΅œμ„ μ˜ 경우둜 λ‚˜λˆ„μ–΄ ν‰κ°€λœλ‹€.

 

λΉ…-였 ν‘œκΈ°λ²•(Big O Notation)

: μ‹œκ°„ λ³΅μž‘λ„λ₯Ό ν‘œν˜„ν•˜λŠ”λ° κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” ν‘œκΈ°λ²•μ΄λ‹€. λΉ… 였 ν‘œκΈ°λ²•μ€ μ•Œκ³ λ¦¬μ¦˜ μ„±λŠ₯에 κ°€μž₯ 큰 영ν–₯을 λ―ΈμΉ˜λŠ” λΆ€λ¬Έλ§Œμ„ κ³ λ €ν•˜μ—¬ λ‚˜νƒ€λ‚Έλ‹€. 예λ₯Ό λ“€μ–΄, 동전을 던져 뒷면이 λ‚˜μ˜¬ ν™•λ₯ μ„ 이야기할 λ•Œ 운이 μ’‹μœΌλ©΄ 1λ²ˆμ— 뒷면이 λ‚˜μ˜€μ§€λ§Œ 운이 μ•ˆμ’‹μ„ 경우 n번 만큼 동전을 λ˜μ €μ•Ό ν•œλ‹€. 이런 ν™•λ₯ μ—μ„œ μ΅œμ•…μ˜ 경우λ₯Ό κ³„μ‚°ν•˜λŠ” 방식을 λΉ…μ˜€ ν‘œκΈ°λ²•μ΄λΌ ν•œλ‹€.

 

 

자주 μ‚¬μš©λ˜λŠ” μ‹œκ°„ λ³΅μž‘λ„μ˜ 예

  • O(1): μƒμˆ˜ μ‹œκ°„. μž…λ ₯ λ°μ΄ν„°μ˜ 크기와 상관없이 μΌμ •ν•œ μ‹œκ°„μ΄ μ†Œμš”λœλ‹€.
  • O(log n) : 둜그 μ‹œκ°„. 이진 검색과 같은 μ•Œκ³ λ¦¬μ¦˜μ—μ„œ λ‚˜νƒ€λ‚œλ‹€.
  • O(n) : μ„ ν˜• μ‹œκ°„. λ‹¨μˆœ 검색과 같은 μ•Œκ³ λ¦¬μ¦˜μ—μ„œ λ‚˜μ˜¨λ‹€.
  • O(n log n): 병합 μ •λ ¬ λ˜λŠ” 퀡 μ •λ ¬κ³Ό 같은 μ•Œκ³ λ¦¬μ¦˜μ—μ„œ λ‚˜μ˜¨λ‹€.
  • O() : λ‹€ν•­ μ‹œκ°„. 버블 μ •λ ¬, μ‚½μž… μ •λ ¬, 선택 μ •λ ¬ λ“±μ—μ„œ λ‚˜νƒ€λ‚œλ‹€.
  • O(2ⁿ) : μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹œκ°„ λ³΅μž‘λ„λ‚˜ 곡간 λ³΅μž‘λ„κ°€ μž…λ ₯ 크기에 μ§€μˆ˜μ μœΌλ‘œ μ¦κ°€ν•œλ‹€. 맀우 λΉ„νš¨μœ¨μ μ΄λ©° μž…λ ₯ 크기가 μž‘μ€ κ²½μš°μ—λ§Œ μ‹€μ œλ‘œ 싀행이 κ°€λŠ₯ν•˜λ‹€. ex)ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ μž¬κ·€μ  κ΅¬ν˜„, 이쀑 forλ¬Έ

[faster]    
O(1) < O(log n) < O(nlog n) < O(n²) < O(2ⁿ)    [slower]

 


| κ³΅κ°„λ³΅μž‘도(Space Complexity)λž€?

  • 곡간 λ³΅μž‘λ„λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 양을 λ‚˜νƒ€λ‚΄λŠ” 척도이닀.
  • μ‹œκ°„ λ³΅μž‘λ„μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ 곡간 λ³΅μž‘λ„λ„ λΉ… 였 ν‘œκΈ°λ²•μ„ μ‚¬μš©ν•΄ ν‘œν˜„ν•œλ‹€.

 

곡간 λ³΅μž‘λ„μ˜ ꡬ성

  • κ³ μ • 곡간(Fixed Space): μ•Œκ³ λ¦¬μ¦˜μ˜ 싀행에 ν•„μš”ν•œ κ³ μ •λœ 크기의 λ©”λͺ¨λ¦¬μ΄λ‹€. 예λ₯Ό λ“€λ©΄ λ³€μˆ˜, μƒμˆ˜, κ°„λ‹¨ν•œ 데이터 ꡬ쑰 등이닀.
  • κ°€λ³€ 곡간(Variable Space) : μ•Œκ³ λ¦¬μ¦˜ 싀행에 따라 크기가 λ³€ν•˜λŠ” λ©”λͺ¨λ¦¬μ΄λ‹€. 예λ₯Ό λ“€λ©΄ μž¬κ·€ μŠ€νƒ, 동적 ν• λ‹Ήλœ λ©”λͺ¨λ¦¬ 등이닀.

 


| μ •λ¦¬

  • μ‹œκ°„ λ³΅μž‘λ„μ™€ 곡간 λ³΅μž‘λ„λŠ” μ’…μ’… trade-off 관계에 μžˆλ‹€. 즉, μ‹œκ°„μ„ μ ˆμ•½ν•˜κΈ° 이해 더 λ§Žμ€ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜, λ©”λͺ¨λ¦¬λ₯Ό μ ˆμ•½ν•˜κΈ°μœ„ν•΄ 더 λ§Žμ€ μ‹œκ°„μ„ μ†ŒλΉ„ν•˜λŠ” 것이닀. μ΄λŸ¬ν•œ trade-offλ₯Ό νŠΉμ • λ¬Έμ œλ‚˜ 상황에 따라 λ‹€λ₯΄κ²Œ μ„ νƒν•΄μ•Όν•œλ‹€.

 

 

λ°˜μ‘ν˜•
Comments