๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Code Tree

[์ฝ”๋“œํŠธ๋ฆฌ] ๋ฐ˜๋ณต๋ฌธ์˜ ์‹œ๊ฐ„๋ณต์žก๋„(2)

SW์ค‘์‹ฌ๋Œ€ํ•™ ์‚ฌ์—…๋‹จ์—์„œ CodeTree์™€ ํ•จ๊ป˜ ์‹ค์‹œํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ์บ ํ”„์— ์ฐธ์—ฌํ•˜์—ฌ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

๋ฐ˜๋ณต๋ฌธ ์‹œ๊ฐ„๋ณต์žก๋„ ๋ฌธ์ œ ์ค‘ ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

 

(1)

function solution(n, m)
   set sum = 0
   set visited = [n][m]
   for i = 1 ... i <= n
       for j = 1 ... j <= m
           if visited[i][j] == 0
               for k = j ... k <= m
                   visited[i][k] = 1

for i ๋ฌธ์—์„œ๋Š” O(N),

for j ๋ฌธ์—์„œ O(M) ์ด๊ณ ,

for k๋ฌธ์€ ์กฐ๊ฑด๋ฌธ์ด ๋งŒ์กฑ๋  ๋•Œ๋งŒ ์‹คํ–‰๋˜๋Š”๋ฐ... ์ด๊ฒŒ ๋ณต์žกํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด if๋ฌธ์€ j ๋ฐ˜๋ณต๋ฌธ์ด ๋ชจ๋‘ ๋„๋Š” ๋™์•ˆ ๋‹จ 1๋ฒˆ๋งŒ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—, for k ๋ฌธ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๊ฒฐ๊ตญ O(1)์ด๋ผ๊ณ  ๋ด…๋‹ˆ๋‹ค.

 

-> O(NM)

 


(2)

function solution(n, m)
   set sum = 0
   for i = 1 ... i <= n
       for j = 1 ... j <= m
           sum += i * j

   for i = 1 ... i <= n
       sum -= i * i

์ฒซ๋ฒˆ์งธ for i ๋ฌธ์€ O(N), for j ๋ฌธ์€ O(M)

๋‘๋ฒˆ์จฐ for i ๋ฌธ์€ O(N)์ด๋ฏ€๋กœ

์ด O(NM + N) ?

 

-> ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ์ตœ๊ณ  ์ฐจ์ˆ˜๋งŒ ์‚ด๋ฆฌ๋ฉด ๋˜๋ฏ€๋กœ, O( N*(M+1) )  =>  O(NM)

 

์ถœ์ฒ˜ ์ฝ”๋“œํŠธ๋ฆฌ