๐ŸŒฑ → ๐ŸŒณ

Algorithm) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ๋ณธ๋ฌธ

Algorithms

Algorithm) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ

BAY 2022. 10. 25. 12:47
728x90

์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ํ•˜๊ธฐ 

๋ฌธ์ œ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์€ ์‹œ๊ฐ„์ œํ•œ(์ˆ˜ํ–‰์‹œ๊ฐ„ ์š”๊ตฌ์‚ฌํ•ญ)

 

์‹œ๊ฐ„์ œํ•œ์ด 1์ดˆ์ธ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์„ ๋•Œ, ์ผ๋ฐ˜์ ์ธ ๊ธฐ์ค€

  • N์˜ ๋ฒ”์œ„๊ฐ€ 500์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(N^3)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„
  • N์˜ ๋ฒ”์œ„๊ฐ€ 2,000์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(N^2)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„
  • N์˜ ๋ฒ”์œ„๊ฐ€ 100,000์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(NlogN)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„
  • N์˜ ๋ฒ”์œ„๊ฐ€ 10,000,000์ธ ๊ฒฝ์šฐ: ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(N)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ค๊ณ„

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ • (์ผ๋ฐ˜์ ์œผ๋กœ)

1. ์ง€๋ฌธ ์ฝ๊ธฐ ๋ฐ ์ปดํ“จํŒ…์  ์‚ฌ๊ณ 

2. ์š”๊ตฌ์‚ฌํ•ญ(๋ณต์žก๋„) ๋ถ„์„

3. ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์•„์ด๋””์–ด ์ฐพ๊ธฐ

4. ์†Œ์Šค์ฝ”๋“œ ์„ค๊ณ„ ๋ฐ ์ฝ”๋”ฉ 

์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ ์ถœ์ œ์ž๋“ค์€ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋ฅผ ์บ์น˜ํ•œ๋‹ค๋ฉด, ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋ฌธ์ œ ์ถœ์ œํ•จ

 

์ˆ˜ํ–‰ ์‹œ๊ฐ„ ์ธก์ • ์†Œ์Šค์ฝ”๋“œ ์˜ˆ์ œ 

import time
start_time = time.time() # ์ธก์ • ์‹œ์ž‘ 

# ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค์ฝ”๋“œ ...

end_time = time.time() # ์ธก์ • ์ข…๋ฃŒ
print('time:', end_time - start_time) # ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ์ถœ๋ ฅ
728x90