SW์ค์ฌ๋ํ ์ฌ์ ๋จ์์ CodeTree์ ํจ๊ป ์ค์ํ ์ฝ๋ฉํ ์คํธ ๋๋น ์บ ํ์ ์ฐธ์ฌํ์ฌ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค.
function example(n)
while 0 > n or n > 100
if n < 0
n++
else
n--
return n
์ ์ฝ๋์ ๊ฒฝ์ฐ n์ ๊ฐ์ ๋ฐ๋ผ ์ฐ์ฐ์ ํ์๊ฐ ๋ฌ๋ผ์ง ์ ๋ฐ์ ์์ต๋๋ค.
์ฌ์ค, ์๊ฐ๋ณต์ก๋๋ ์ผ๋ฐ์ ์ผ๋ก ์ต์ ์ ๊ธฐ์ค์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ๋ ์ด์ ๊ฐ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ์ฒดํฌํ๊ธฐ ์ํจ์ด์์ฃ ? ๋น์ฐํ ์ ๋ ฅ๊ฐ์ด ์์ฃผ ํฌ๊ฑฐ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๋ฐ์ดํฐ๋ ๋ค์ด์ฌ ๊ฐ๋ฅ์ฑ์ด ์กด์ฌํ๋ฏ๋ก ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ๋ฉด ์ด๋ ํ ์ํฉ์์๋ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ด ๋ฐ์ด๋์ง ํ์ธํ ์ ์์ ๊ฒ์ ๋๋ค.
์ด ์ ์ ์๊ธฐํ ์ฑ๋ก, ๋ฐ๋ณต๋ฌธ์ ์๊ฐ๋ณต์ก๋์ ๋ํด ์์๋ด ์๋ค.
for
set x = 0
for i = 0 ... i < 10
x += 1
print(x)
for๋ฌธ ํ๋ฒ์ ์๊ฐ๋ณต์ก๋๋ O(1)์ด๋ฏ๋ก, 10๋ฒ ๋ฐ๋ณต์ ํด๋ ๊ฒฐ๊ตญ ์๊ฐ๋ณต์ก๋๋
๊ทธ๋ฌ๋ ๋ถ๋ถ๋ช ํ ๊ฐ์ด ๋ค์ด์ค๊ฒ ๋๋ฉด ์ํฉ์ ๋ฌ๋ผ์ง๋๋ค.
function example(n)
set x = 0
for i = 0 ... i < n
x += 1
print(x)
์กฐ๊ธ ๋นํฉ์ค๋ฌ์ธ ์๋ ์์ง๋ง for๋ฌธ ๋ด๋ถ์ ์ฝ๋์ ์๊ฐ๋ณต์ก๋๋ ์ด๋, N๋ฒ ๋ฐ๋ณต์ ์ํํ๊ฒ ๋๋ค๋ฉด ์ด ๋ฉ๋๋ค.
set x = 0
for i = 0 ... i < n / 2
x += 1
print(x)
์์ ์ฝ๋๋ ๋ฒ ์ํ์ด ๋๊ฒ ์ง๋ง, ํ๊ธฐ๋ฒ์ ์์๋ฅผ ๋ฌด์ํ๊ธฐ ๋๋ฌธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋๋ค.
while
while ๋ฌธ์ ๊ฒฝ์ฐ, ๋ฐ๋ณต๋ฌธ์ ํ์ถํ ์ ์๋ ์กฐ๊ฑด์ด ๋ถ๋ถ๋ช ํ๋ฏ๋ก for์ ๋นํด ์๊ฐํด์ผ ํ ๊ฒ์ด ๋ง์ต๋๋ค.
function example(n)
while 0 > n or n > 100
if n < 0
n++
else
n--
return n
n์ด ๋ง์ฝ์ ์์ฒญ๋๊ฒ ํฐ ๊ฐ์ด๋ผ๋ฉด ์ด๋ก ์ ์ผ๋ก N - 100ํ์ ์ํ๊ฐ ํ์ํ ๊ฒ ์ ๋๋ค.
๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๋ ์์ฐ์ค๋ฝ๊ฒ ์ด ๋ ๊ฒ ์ ๋๋ค.
set x = 0
for i = 0 ... i < n
for j = 5 ... j < n
x += 1
print(x)
for i = 0 ... i < n
x += 1
print(x)
์ ์ฝ๋์ ํฌ๋ฌธ์ , ์๋ ํฌ๋ฌธ์ ์ด์ง๋ง N^2์ด ํญ์ N๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฏ๋ก
์๊ฐ๋ณต์ก๋๋
๋ฐ๋ณต๋ฌธ์ด ์ค์ฒฉ๋๋ฉด ๋ฐ๊นฅ ๋ฐ๋ณต๋ฌธ๊ณผ ๋ด๋ถ ๋ฐ๋ณต๋ฌธ์ ๋ชจ๋ ๊ณ ๋ คํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ๋ณต์ก๋๋ฅผ ํ๋จํ๊ธฐ ์กฐ๊ธ ์ด๋ ต์ต๋๋ค.
function solution1(n)
for i = 1 ... i <= n
for j = 1 ... j <= 5
for k = 1 ... k <= n
print("Hello")
๋ค์ ์ฝ๋๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋ ์ค ํ๋์ธ ์ ํ ์ ๋ ฌ์ ์ฝ๋๋ก, ๋ค๋ฅธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋นํด ๊ฐ๋จํ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
function Selection_sort(arr)
set len = arr.size
for i = 0 ... i < len-1
set min = i
for j = i+1 ... j < len
if arr[j] < arr[min]
min = j
set tmp = arr[i]
arr[i] = arr[min]
arr[min] = tmp
return arr
->
function solution1(n)
for i = 0 ... i < n * n
for k = 0 ... k <= i
print("Hi")
for j = n ... j >= 0
print("Bye")
-> (N^2)*(N^2) + (N^2)*N =>
function solution2(n)
for i = 0 ... i < n
set j = 1
while j < i
j *= 2
์ ์ฝ๋๋ for๋ฌธ ์์ while๋ฌธ์ด ์๋๋ฐ,
i๊ฐ 2๋ฐฐ ๋์ด๋ ๋๋ง๋ค while๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ 1์ฉ ๋์ด๋๋ฏ๋ก ์ด log i ๋ฒ ๋ฐ๋ณต์ด ํ์ํฉ๋๋ค.
๋ฐ๋ผ์ ์๊ฐ๋ณต์ก๋๋ for๋ฌธ์ N, while๋ฌธ์ log N ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
-> O(N logN)
์ถ์ฒ ์ฝ๋ํธ๋ฆฌ
'๐ ์๊ณ ๋ฆฌ์ฆ > Code Tree' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ] HashMap ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
---|---|
[์ฝ๋ํธ๋ฆฌ] Hash Map (1) | 2023.02.07 |
[์ฝ๋ํธ๋ฆฌ] ๊ณต๊ฐ๋ณต์ก๋ (0) | 2023.02.06 |
[์ฝ๋ํธ๋ฆฌ] ๋ฐ๋ณต๋ฌธ์ ์๊ฐ๋ณต์ก๋(2) (0) | 2023.02.06 |
[์ฝ๋ํธ๋ฆฌ] ์๊ฐ๋ณต์ก๋์ ์ ์ (0) | 2023.02.06 |