1. Complexity - BAEKJungHo/algorithms GitHub Wiki

๋ณต์žก๋„(Complexity)

๋ณต์žก๋„๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„(Time Complexity)์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„(Space Complexity)๋กœ ๋‚˜๋‰œ๋‹ค.

  • ์‹œ๊ฐ„ ๋ณต์žก๋„
    • ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”์ง€๋ฅผ ์˜๋ฏธ
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜
  • ๊ณต๊ฐ„ ๋ณต์žก๋„
    • ํŠน์ •ํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋Š”์ง€๋ฅผ ์˜๋ฏธ
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘

๋ณดํ†ต ๋ณต์žก๋„๋ฅผ ์–˜๊ธฐํ–ˆ์„ ๋•Œ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ์†Œ๋ชจํ•˜๋Š” ๋Œ€์‹ ์— ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์  ์ด์ ์ด ๋งค์šฐ ํฐ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์žˆ๋‹ค. ์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•ด์„œ ์‹œ๊ฐ„์„ ๋น„์•ฝ์ ์œผ๋กœ ์ค„์ด๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ”๋ชจ์ด์ œ์ด์…˜(Memoization) ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„(Time Complexity)

์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ๋Š” ๋น…์˜ค(Big-O) ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค. ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ํ•จ์ˆ˜์˜ ์ƒํ•œ๋งŒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • O(1)
    • ์ƒ์ˆ˜ ์‹œ๊ฐ„(Constant Time)
  • O(logN)
    • ๋กœ๊ทธ ์‹œ๊ฐ„(Log Time)
  • O(N)
    • ์„ ํ˜• ์‹œ๊ฐ„
  • O(NlogN)
    • ๋กœ๊ทธ ์„ ํ˜• ์‹œ๊ฐ„
  • O(N ์ œ๊ณฑ)
    • ์ด์ฐจ ์‹œ๊ฐ„
  • O(N ์„ธ์ œ๊ณฑ)
    • ์‚ผ์ฐจ ์‹œ๊ฐ„
  • O(2 N์ œ๊ณฑ)
    • ์ง€์ˆ˜ ์‹œ๊ฐ„