Guidelines

μ•Œκ³ λ¦¬μ¦˜μ˜ μ‹œκ°„, 곡간 λ³΅μž‘λ„

μ•Œκ³ λ¦¬μ¦˜μ˜ λ³΅μž‘λ„λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•œ κ°„λ‹¨ν•œ 파이썬 μ½”λ“œ μ˜ˆμ‹œλ₯Ό 확인해 λ³΄κ² μŠ΅λ‹ˆλ‹€.


μ‹œκ°„ λ³΅μž‘λ„

μ‹œκ°„ λ³΅μž‘λ„(Time Complexity)λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 μ†Œμš”λ˜λŠ” μ‹œκ°„μ΄ μž…λ ₯ 크기에 따라 μ–΄λ–»κ²Œ λ³€ν•˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ²™λ„μž…λ‹ˆλ‹€.

μ„ ν˜• μ‹œκ°„ λ³΅μž‘λ„ (O(n)) μ˜ˆμ‹œ

μ„ ν˜• μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°€μ§€λŠ” μ•Œκ³ λ¦¬μ¦˜μ€ μž…λ ₯ 크기에 직접 λΉ„λ‘€ν•˜μ—¬ μ‹œκ°„μ΄ μ¦κ°€ν•©λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλŠ” 주어진 리슀트의 각 μš”μ†Œλ₯Ό 좜λ ₯ν•˜λŠ” κ°„λ‹¨ν•œ μ˜ˆμž…λ‹ˆλ‹€.

μ„ ν˜• μ‹œκ°„ λ³΅μž‘λ„ μ˜ˆμ‹œ
numbers = [1, 2, 3, 4, 5] for number in numbers: print(number)

이 μ½”λ“œμ—μ„œ for λ£¨ν”„λŠ” 리슀트 numbers의 각 μš”μ†Œλ₯Ό ν•œ λ²ˆμ”© λ°©λ¬Έν•˜λ―€λ‘œ, 리슀트의 크기(n)에 λΉ„λ‘€ν•˜λŠ” μ‹œκ°„μ΄ μ†Œμš”λ©λ‹ˆλ‹€.


이차 μ‹œκ°„ λ³΅μž‘λ„ (O(nΒ²)) μ˜ˆμ‹œ

이차 μ‹œκ°„ λ³΅μž‘λ„λ₯Ό κ°€μ§€λŠ” μ•Œκ³ λ¦¬μ¦˜μ€ μž…λ ₯ 크기의 μ œκ³±μ— λΉ„λ‘€ν•˜μ—¬ μ‹œκ°„μ΄ μ¦κ°€ν•©λ‹ˆλ‹€. μ•„λž˜ μ½”λ“œλŠ” μ€‘μ²©λœ 루프λ₯Ό μ‚¬μš©ν•˜μ—¬ 각 숫자 쌍의 쑰합을 좜λ ₯ν•©λ‹ˆλ‹€.

이차 μ‹œκ°„ λ³΅μž‘λ„ μ˜ˆμ‹œ
numbers = [1, 2, 3, 4, 5] for i in numbers: for j in numbers: print(f"({i}, {j})")

이 μ½”λ“œμ—μ„œ 두 개의 μ€‘μ²©λœ for λ£¨ν”„λŠ” 리슀트 numbers의 λͺ¨λ“  κ°€λŠ₯ν•œ 숫자 μŒμ„ μƒμ„±ν•©λ‹ˆλ‹€. 첫 번째 루프가 ν•œ 번 싀행될 λ•Œλ§ˆλ‹€ 두 번째 루프가 전체 리슀트λ₯Ό μˆœνšŒν•˜λ―€λ‘œ, 전체 μž‘μ—… νšŸμˆ˜λŠ” n x n, 즉 n의 μ œκ³±μ— λΉ„λ‘€ν•©λ‹ˆλ‹€.


곡간 λ³΅μž‘λ„

곡간 λ³΅μž‘λ„λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ 싀행될 λ•Œ ν•„μš”ν•œ λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ 양을 λ‚˜νƒ€λ‚΄λ©°, μ•Œκ³ λ¦¬μ¦˜μ΄ μ‚¬μš©ν•˜λŠ” λ³€μˆ˜, 데이터 ꡬ쑰 및 ν• λ‹Ήλœ λ©”λͺ¨λ¦¬ 양에 μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€.

μƒμˆ˜ 곡간 λ³΅μž‘λ„ (O(1)) μ˜ˆμ‹œ

μƒμˆ˜ 곡간 λ³΅μž‘λ„λŠ” μž…λ ₯ 크기에 상관없이 μ•Œκ³ λ¦¬μ¦˜μ΄ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ 양이 μΌμ •ν•œ κ²½μš°μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, νŠΉμ • 수의 μ œκ³±μ„ κ³„μ‚°ν•˜λŠ” ν•¨μˆ˜λŠ” μž…λ ₯ 크기와 상관없이 μΌμ •ν•œ μ–‘μ˜ λ©”λͺ¨λ¦¬λ§Œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

μƒμˆ˜ 곡간 λ³΅μž‘λ„ μ˜ˆμ‹œ
def square(number): return number * number result = square(5) print(result)

이 ν•¨μˆ˜λŠ” numberλΌλŠ” 단 ν•˜λ‚˜μ˜ μž…λ ₯κ³Ό, κ·Έ μž…λ ₯의 μ œκ³±μ„ κ³„μ‚°ν•˜λŠ” μž„μ‹œ λ³€μˆ˜λ§Œμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. λ”°λΌμ„œ, 이 ν•¨μˆ˜μ˜ 곡간 λ³΅μž‘λ„λŠ” O(1)μž…λ‹ˆλ‹€.


μ„ ν˜• 곡간 λ³΅μž‘λ„ (O(n))

μ„ ν˜• 곡간 λ³΅μž‘λ„λŠ” μ•Œκ³ λ¦¬μ¦˜μ΄ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ 양이 μž…λ ₯ 크기에 λΉ„λ‘€ν•΄ μ¦κ°€ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μž…λ ₯ 리슀트의 λͺ¨λ“  μš”μ†Œλ₯Ό λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ 리슀트λ₯Ό λ§Œλ“œλŠ” κ²½μš°κ°€ 이에 ν•΄λ‹Ήν•©λ‹ˆλ‹€.

μ„ ν˜• 곡간 λ³΅μž‘λ„ μ˜ˆμ‹œ
def clone_list(original_list): new_list = original_list[:] # 리슀트 전체λ₯Ό 볡사 return new_list original = [1, 2, 3, 4, 5] cloned = clone_list(original) print(cloned)

이 ν•¨μˆ˜μ—μ„œ new_listλŠ” μž…λ ₯ original_list의 크기만큼의 곡간을 μ°¨μ§€ν•©λ‹ˆλ‹€. μž…λ ₯ 리슀트의 크기가 n이라면, 볡제된 λ¦¬μŠ€νŠΈλ„ n만큼의 곡간을 ν•„μš”λ‘œ ν•˜λ―€λ‘œ, 이 ν•¨μˆ˜μ˜ 곡간 λ³΅μž‘λ„λŠ” O(n)μž…λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result