ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ญ”์ง€๋Š” ๋‹ค ์•Œ๊ณ  ์˜ค์…จ์ฃ  ?!

 

๋ชจ๋ฅด๊ฒ ๋‹ค๊ณ ์š” ..??

 

์ œ๊ฐ€ ์„ค๋ช… ์ž˜ ํ•ด๋’€์œผ๋‹ˆ ํ•œ ๋ฒˆ ๋ณด๊ณ  ์˜ค์‹œ์ฃ !  (๋ธ”๋กœ๊ทธ ํ™๋ณด ๐Ÿ˜Ž) 

์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜


 

๋ณธ๋ก ์œผ๋กœ ๋Œ์•„์™€์„œ !

์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ญ”์ง€๋Š” ์ด์ œ ์•Œ์•˜์œผ๋‹ˆ

 

์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด

๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ์ง€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ธธ๋Ÿฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š”

์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„์•ผ ํ•ด์š”.

 


 

๊ทธ๋Ÿฐ๋ฐ ์ž ๊น !

 

 

์œ„์— ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ธฐ ์ „, ํ•œ ๊ฐ€์ง€ ์ƒ๊ฐํ•ด ๋ด์•ผ ํ•  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์™œ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐพ์•„์•ผ ํ• ๊นŒ์š”?

 

๊ทธ๊ฑด ๋ฐ”๋กœ

์šฐ๋ฆฌ์—๊ฒŒ ์ฃผ์–ด์ง„ ์ž์›์€ ํ•œ์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.


์˜ˆ๋ฅผ ๋“ค์–ด,

์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ํ‘ผ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

 

๋ˆ„๊ตฌ๋Š” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ํ’€์ด ๋ฐฉ์‹(๊ณต์‹)์œผ๋กœ ๋‹จ ์‹œ๊ฐ„์— ๋ฌธ์ œ๋ฅผ ํ’€ ๊ฒƒ์ด๊ณ ,

 

๋‹ค๋ฅธ ๋ˆ„๊ตฐ๊ฐ€๋Š” ๊ณ„์‚ฐ ๊ณผ์ • ํ•˜๋‚˜ ํ•˜๋‚˜๋ฅผ ์ง์ ‘ ์†์œผ๋กœ ์„ธ๋ฉด์„œ ํ’€๊ณ  ์žˆ์–ด

์ œํ•œ ์‹œ๊ฐ„ ๋‚ด์— ๋‹ต์„ ๋‚ด์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋˜ํ•œ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

 

ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜(ํ’€์ด ๋ฐฉ์‹)์„ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด,

์šฐ๋ฆฌ๋Š” ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ณ , ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด 

๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ ๋ฅผ ๋ฐฐ์šธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์ด์ œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์ด์œ ๋„ ์•Œ์•˜๊ฒ ๋‹ค,

์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด๋Ÿฌ ๊ฐ€์‹œ์ฃ  !

 


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

 

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰์ด ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ๋งํ•ด,

์šฐ๋ฆฌ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์ด์šฉํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰ ์†๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๊ณ ,

ํŠน์ • ์ž…๋ ฅ์— ๋Œ€ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋กœ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.


์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

// Swift
func printHello() {
    var count = 10
    for _ in 0..<count {
        print("Hello")
    }
}

 

 

 

์œ„์— ํ•จ์ˆ˜๋Š” ์ •์ˆ˜ count์˜ ๊ฐ’์— ๋”ฐ๋ผ Hello๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅ ๊ฐ’์€ ์—†๊ณ , ์ถœ๋ ฅ ๊ฐ’์€ ๋ฐ˜๋ณต๋˜์–ด ๋‚˜ํƒ€๋‚˜๋Š” print๋ฌธ์ธ ๊ฒƒ์ด์ฃ .

 

๋‹ค์‹œ๋งํ•ด, 

'printHello() ํ•จ์ˆ˜๋Š” 10๋ฒˆ์˜ print๋ฌธ์ด ์‹คํ–‰๋˜๊ณ , 10์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค'๋ผ๊ณ  ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(๋ฌผ๋ก  count ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ๋„, ์‹คํ–‰๊ณผ์ •์— ํฌํ•จ์ด ๋˜์ง€๋งŒ,

์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ถœ๋ ฅ ๊ฐ’์—๋Š” ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค !)


๋˜ ๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜ ํ•จ์ˆ˜๋Š” ๋ช‡ ๋ฒˆ์˜ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋ ๊นŒ์š”?

// Swift
func findMaxValue(numbers: [Int]) -> Int {
    // ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ดˆ๊ธฐ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์„ค์ •
    var maxValue = numbers[0]

    // ๋‚˜๋จธ์ง€ ์›์†Œ๋“ค๊ณผ ๋น„๊ตํ•˜์—ฌ ์ตœ๋Œ€๊ฐ’ ๊ฐฑ์‹ 
    for number in numbers {
        if number > maxValue {
            maxValue = number
        }
    }

    return maxValue
}

 

 

ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ์ •์ˆ˜ ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.

 

์ดˆ๊ธฐ ์ตœ๋Œ€๊ฐ’์„ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋กœ ์„ค์ •ํ•˜๊ณ ,

๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๋ชจ๋“  ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ตœ๋Œ€๊ฐ’์„ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์—์„œ ๊ธฐ๋ณธ์ ์ธ ๋Œ€์†Œ ๋น„๊ต์™€ ๋ณ€์ˆ˜ ๊ฐฑ์‹ ์ด ์ฃผ์š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.



 

๊ทธ๋Ÿผ, ์•„๊นŒ ์œ„์—์„œ ๋ดค๋˜ printHello() ํ•จ์ˆ˜์™€๋Š” ๋‹ค๋ฅธ๊ฒŒ ๋ฌด์—‡์ผ๊นŒ์š”?

 

findMaxValue(numbers:) ํ•จ์ˆ˜๋Š”

์–ด๋–ค ์ž…๋ ฅ๊ฐ’์ด ๋“ค์–ด ์˜ฌ์ง€ ์•Œ ์ˆ˜ ์—†๊ณ , ๋ช‡ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ๊ฐ–๋Š” ๋ฐฐ์—ด์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋“ค์–ด ์˜ฌ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ, ์ •ํ™•ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.


 

์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค..!

 

์˜ˆ๋ฅผ ๋“ค์–ด, findMaxValue(number:)ํ•จ์ˆ˜์—

ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ [1, 2, 3]๊ณผ [3, 2, 1]์„ ์ „๋‹ฌํ•˜์—ฌ ์‹คํ–‰ํ–ˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค!

 

[1, 2, 3]์˜ ๊ฒฝ์šฐ,

์ตœ๋Œ€๊ฐ’์ธ 3์ด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ ๋‚ด์—์„œ if ์กฐ๊ฑด๋ฌธ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. 

๋”ฐ๋ผ์„œ for ๋ฌธ์—์„œ 3๋ฒˆ์˜ if๋ฌธ ์—ฐ์‚ฐ ๊ณผ์ •์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

[3, 2, 1]์˜ ๊ฒฝ์šฐ๋Š”,

์ตœ๋Œ€๊ฐ’์ด ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ์— ์œ„์น˜ํ•˜๋ฏ€๋กœ if ์กฐ๊ฑด๋ฌธ์ด ํ•ญ์ƒ false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ if๋ฌธ ๋‚ด์—์„œ๋Š” ์–ด๋– ํ•œ ์—ฐ์‚ฐ ๊ณผ์ •๋„ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

 

์ด๋Ÿฐ ๊ฒฝ์šฐ์—

ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ๋ฐฐ์—ด์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. 

 

์ด์ฒ˜๋Ÿผ, ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์‹คํ–‰ ์‹œ์ ์—์„œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ์ •ํ™•ํžˆ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์—

์ •ํ™•ํ•œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ‘œํ˜„ํ•œ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๊ตฌํ•ด์•ผ ํ• ๊นŒ์š” ??


 

 

์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค !

 

์ฒซ ๋ฒˆ์งธ๋กœ๋Š”,

๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•ด ๊ธฐ๋ณธ ์—ฐ์‚ฐ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ํ‰๊ท ์„ ๋‚ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ๋กœ๋Š”,

๊ฐ€์žฅ ์ตœ์•…์˜ ๊ฒฝ์šฐ์˜ ์ž…๋ ฅ(worst-case input)์„ ๊ฐ€์ •ํ•˜์—ฌ,

์ตœ์•…์˜ ๊ฒฝ์šฐ์˜ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

 

๊ฐ€์žฅ ์ด์ƒ์ ์ธ ๋ฐฉ์‹์€ ์ฒซ ๋ฒˆ์งธ ๋ฐฉ์‹์ธ, ํ‰๊ท ์„ ๋‚ด๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. 

 

ํ•˜์ง€๋งŒ,

์˜ˆ์‹œ์—์„œ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•œ ํ‰๊ท ์€ ๋‚ด๋Š” ๊ฒƒ์€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅํ‰๊ฐ€๋Š”

๋Œ€๋ถ€๋ถ„ 2๋ฒˆ์ธ, Worstcase Time Complexity๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ œ์ผ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•˜๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ตฌํ–ˆ์œผ๋‹ˆ,

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ด๊ฒƒ๋ณด๋‹จ ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๊ฒ ์ง€?! ํ•˜๋Š” ์ƒ๊ฐ์œผ๋กœ ๊ตฌํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

 


๊ฒฐ๋ก ์ ์œผ๋กœ !

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰์†๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…์ด๋ฉฐ,

์ด ์‹คํ–‰ ์†๋„๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ƒํ™ฉ์„ ๊ฐ€์ •ํ•˜๊ณ  ๊ตฌํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅํ‰๊ฐ€๋Š” ๋Œ€๋ถ€๋ถ„ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค !!

 


๊ทธ๋Ÿฐ๋ฐ, ์ด์ฏค๋˜์„œ ๋“œ๋Š” ์ƒ๊ฐ์ด...

๋˜‘๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์—ฌ๋„ ์ œ์ผ ์ข‹์€ ์ปดํ“จํ„ฐ์—์„œ ๋Œ๋ฆฌ๋Š” ๊ฒŒ ์ œ์ผ ๋น ๋ฅธ ๊ฑฐ ์•„๋‹Œ๊ฐ€์š” ?!

 

(๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐ ์•ˆํ•ด๋„... ์ฝ์–ด๋ณด์„ธ์š”..!)


๊ทธ๋Ÿด ์ค„ ์•Œ๊ณ ,

๋˜‘๋˜‘ํ•˜์‹  ๋ถ„๋“ค์ด ์ด๋ฏธ ๊ฐ€์ •์„ ๋’€์Šต๋‹ˆ๋‹ค !

 

๋ฐ”๋กœ, ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ์ธก์ •์€

'๊ฐ€์ƒ ์ปดํ“จํ„ฐ'์—์„œ '๊ฐ€์ƒ ์–ธ์–ด'๋กœ ์ž‘์„ฑ๋œ '๊ฐ€์ƒ ์ฝ”๋“œ'๋ฅผ ์‹คํ–‰(์‹œ๋ฎฌ๋ ˆ์ด์…˜)ํ•œ๋‹ค.

 

์—ฅ??

๊ฐ€์ƒ ์ปดํ“จํ„ฐ? ๊ฐ€์ƒ ์–ธ์–ด? ๊ฐ€์ƒ ์ฝ”๋“œ?

๊ทธ๊ฒŒ ๋ญ์ฃ ..? 

 

๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด !

 

๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ์„ฑ๋Šฅ ์ธก์ •์„ ํ•  ๋•Œ, 

์ปดํ“จํ„ฐ๋‚˜ ์ฝ”๋“œ(C, Pytho, Swift ๋“ฑ) ์ข…๋ฅ˜๊ฐ€ ๋งค๋ฒˆ ๋ฐ”๋€๋‹ค๋ฉด

๊ฒฐ๊ณผ ๊ฐ’๋„ ๋งค๋ฒˆ ๋ฐ”๋€” ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํ•œ ์„ฑ๋Šฅ์„ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—,

์ž๋ฃŒ ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€๋Š”

๊ฐ€์ƒ ์ปดํ“จํ„ฐ ์œ„์—์„œ ๊ฐ€์ƒ ์–ธ์–ด๋ฅผ ์ด์šฉํ•œ ๊ฐ€์ƒ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ์ง„ํ–‰์ด ๋˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

(์‹ค์ œ๊ฐ€ ์•„๋‹Œ ๊ฐ€์ƒ์—์„œ ๋˜‘๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ๋น„๊ตํ•˜๊ณ  ์ธก์ •ํ•œ๋‹ค.)

 

(๋‚˜์ค‘์— ๊ฐ€์ƒ ์ปดํ“จํ„ฐ, ๊ฐ€์ƒ ์–ธ์–ด, ๊ฐ€์ƒ ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ๊ฒŒ์‹œ๋ฌผ๋กœ ์ž‘์„ฑํ•ด๋ณผ๊ฒŒ์š”. ๐Ÿค“)

 


์š”์ •๋„๋กœ

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ๋งˆ๋ฌด๋ฆฌํ•ด๋„ ๋˜๊ฒ ์ฃ ..?


๐Ÿ“๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity)

 

๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” ์š”์ฆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„์— ๋น„ํ•ด ์ค‘์š”๋„๊ฐ€ ๋–จ์–ด์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด, ์š”์ฆ˜ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋ฐœ์ „์œผ๋กœ ๊ณต๊ฐ„ ๋ณต์žก๋„์— ์ค‘์š”๋„๊ฐ€ ์ ์ฐจ ๋‚ฎ์•„์ง€๋ฉด์„œ, 

์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ์กฐ๊ธˆ ๋” ์ค‘์š”์‹œ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์–ด์š”.

(but, ๋ฐ์ดํ„ฐ๋ฅผ ๋งŽ์ด ๋‹ค๋ฃจ๋Š” ๋น…๋ฐ์ดํ„ฐ ๋ถ„์•ผ์—์„œ๋Š” ์—ฌ์ „์ด ์ค‘์š”ํ•ด์š”!)

 


 

๊ทธ๋ž˜๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด !

 

๋ˆˆ์น˜๊ฐ€ ๋น ๋ฅด์‹  ๋ถ„๋“ค์€  ์ด๋ฏธ ์•„์‹œ๊ฒ ์ง€๋งŒ,

๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ณผ ๊ด€๋ จ๋œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค!

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ๋งํ•ด,

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‹คํ–‰๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ•˜๋Š”๋ƒ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ถ”๊ฐ€๋กœ,

์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ณต๊ฐ„(Space)๋ฅผ

์šฐ๋ฆฌ๋Š” ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณ ์ • ๊ณต๊ฐ„ ๊ฐœ๋…๊ณผ,

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰์— ๋”ฐ๋ผ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€๋ณ€ ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ฆ‰, ๊ณ ์ • ๊ณต๊ฐ„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ๋Š” ๋ฌด๊ด€ํ•œ ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ณ ,

๊ฐ€๋ณ€ ๊ณต๊ฐ„์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฐ€์ ‘ํ•œ ๊ณต๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 


๊ฐ„๋‹จํ•˜๊ฒŒ ์“ฐ๊ณ  ๋„˜์–ด๊ฐ€๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ..

์“ฐ๋‹ค๋ณด๋‹ˆ ์š•์‹ฌ์ด ๋‚˜์„œ ๊ธ€์ด ๊ธธ์–ด์กŒ๋„ค์š”..

 


์ž˜๋ชป๋œ ๋‚ด์šฉ์ด๋‚˜ ๊ถ๊ธˆํ•˜์‹  ์ ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๐Ÿค“

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์ฐธ๊ณ  ์ž๋ฃŒ

ํ•œ๊ตญ์™ธ๋Œ€ ์‹ ์ฐฌ์ˆ˜ ๊ต์ˆ˜๋‹˜์˜ Data Structures with Python ๊ฐ•์˜

https://velog.io/@welloff_jj/Complexity-and-Big-O-notation

https://babbab2.tistory.com/88

https://www.gklibrarykor.com/1395/