๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Data Structure, Algorithm

[์•Œ๊ณ ๋ฆฌ์ฆ˜-PS] 1์ดˆ์˜ ์‹œ๊ฐ„๋™์•ˆ CPU๊ฐ€ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋Š” ํฌ๊ธฐ.(์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด์— ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•)

by Wonit 2020. 3. 20.

PS๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ์ž…๋ ฅ N์— ๋Œ€ํ•œ ํฌ๊ธฐ์™€ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๊ด€๊ณ„๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์ž˜ ํŒŒ์•…ํ•ด์•ผ ํ•ด๋‹น ๋ฌธ์ œ์— ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ํ•ฉํ• ์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

์˜ค๋Š˜์€ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์„ธ์„ธํ•œ ๋‚ด์šฉ๋ณด๋‹ค๋Š” ์‹ค์ „ PS ํŒŒํŠธ ์ด๋ฏ€๋กœ PS์—์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ ๋˜๋Š”์ง€ ์ •๋ฆฌ๋ฅผ ํ•ด ๋ณด๊ฒ ๋‹ค.

 

๋ฐฑ์ค€์˜ ๋ฌธ์ œ์ค‘ ์ผ๋ถ€

์œ„๋Š” ๋ฐฑ์ค€์˜ ๋ฌธ์ œ์ค‘ ์ผ๋ถ€๋ฅผ ๋ฐœ์ทŒ ํ–ˆ๋Š”๋ฐ, ์œ„์˜ ๋ฌธ์ œ ์‹œ์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๊ณ„์‚ฐ ๋˜๋Š”์ง€ ๋ง ํ•ด๋ณด๊ฒ ๋‹ค.

 

CPU์˜ 1์ดˆ๊ฐ„ ์—ฐ์‚ฐ ์†๋„

Cpu๋Š” 1์ดˆ๊ฐ„ ์•ฝ 1์–ต์˜ ์ˆ˜๋ฅผ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ N์— ๋Œ€ํ•ด์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n) ์ด๋ผ๋ฉด ์ž…๋ ฅ N์€ 0 <= N <= 100,000,000 ๊นŒ์ง€ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

์œ„์˜ ๋ฌธ์ œ๋กœ ์˜ˆ๋ฅผ ๋“ค์—ˆ์„ ๋•Œ

 

N์ด 1์ฒœ ๊นŒ์ง€๋กœ ์ œํ•œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— N์„ O(1) ~ O(N!) ๊นŒ์ง€ ๊ณ„์‚ฐ ํ•ด๋ดค์„ ๋•Œ ๊ฐ€์žฅ ์ ํ•ฉํ•œ๊ฒƒ์„ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

    1. ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„ ๋ณด๊ธฐ

ํ•ด๋‹น ๋ฌธ์ œ๋Š” 3์ดˆ ์ด๋ฏ€๋กœ

    1. ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์ž…๋ ฅ N์˜ ํฌ๊ธฐ ๋ณด๊ธฐ

ํ•ด๋‹น ๋ฌธ์ œ๋Š” 10,000,000

    1. ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์‹œ๊ฐ„๊ณผ ์ž…๋ ฅ N์˜ ํฌ๊ธฐ ๊ณฑํ•˜๊ธฐ

ํ•ด๋‹น ๋ฌธ์ œ๋Š” 3 * 10,000,000

    1. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณ„๋กœ ๋งž๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„ ๋Œ€์ž…ํžˆ๊ฐ€.

ํ•ด๋‹น ๋ฌธ์ œ๋Š” O(1) ~ O(n) ๊นŒ์ง€ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ํ•„์š”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

 

์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์ •๋ฆฌ

 

1์ดˆ๊ฐ„ ๊ฑธ๋ฆฌ๋Š” ์ž…๋ ฅ์˜ ํฌ๊ธฐ ์ˆœ์„œ.

 

O(1)

O(log N)

O(n)

O(N log N)

O(N^2)

O(N^3)

O(2^N)

O(N!)

๋Œ“๊ธ€