[JavaScript/section 8] 04 - ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 04 - ๋ถ€๋ถ„์ง‘ํ•ฉ ๊ตฌํ•˜๊ธฐ(DFS) ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง€๋ฉด 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์›์†Œ๋ฅผ ๊ฐ–๋Š” ์ง‘ํ•ฉ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ๊ฐ ์ค„์— ํ•˜๋‚˜์”ฉ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์•„๋ž˜์˜ ์ถœ๋ ฅ์˜ˆ์ œ์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ๊ณต์ง‘ํ•ฉ์€ ์ถœ๋ ฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ž…๋ ฅ์˜ˆ์ œ 3 ์ถœ๋ ฅ์˜ˆ์ œ 1 2 3 1 2 1 3 1 2 3 2 3 ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋Š” 2^N ์ด์ง€๋งŒ ๊ณต์ง‘ํ•ฉ์€ ์ถœ๋ ฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ -1์„ ํ•ด์ค€๋‹ค. N์ด 3์ด๋ฉด ์ถœ๋ ฅํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜๋Š” 7๊ฐœ๊ฐ€ ๋œ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ์ฐพ์•„๊ฐˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฌ๋ฉด์„œ ์ดํ•ด๋ฅผ ํ•˜๋ฉด ๋„์›€์ด ๋œ๋‹ค. ๐Ÿ“ ์†Œ์Šค ์ฝ”๋“œ function solution(n) { let answer = []; let ch = Array.from({ length: n + 1 }, () => 0..
[JavaScript/section 8] 03 - ์ด์ง„ํŠธ๋ฆฌ ์ˆœํšŒ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 03 - ์ด์ง„ํŠธ๋ฆฌ ์ˆœํšŒ(๊นŠ์ด์šฐ์„ ํƒ์ƒ‰) ์ด์ง„ํŠธ๋ฆฌ ์ˆœํšŒ๋ฅผ ์—ฐ์Šตํ•ด๋ณด๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ฒ˜์Œ ๋‚˜์˜จ ๊ฐœ๋…์ด๊ธฐ์— ๋จผ์ € ๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด์ง„ํŠธ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์•Œ์•„๋ณด์žโ— ๋‚˜๋ฌด๋ฅผ ๋’ค์ง‘์–ด ๋†“์€ ๋ชจ์–‘๊ณผ ๊ฐ™์œผ๋ฉฐ ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ตœ๋Œ€ ๋‘ ๊ฐœ์˜ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ํŠธ๋ฆฌ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ, ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ๊ฐ ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ์™€ ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. ์ด์ง„ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์ „์œ„์ˆœํšŒ(preorder), ์ค‘์œ„์ˆœํšŒ(inorder), ํ›„์œ„์ˆœํšŒ(postorder)์˜ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ณ  ์žˆ๋‹ค. ์ „์œ„์ˆœํšŒ(preorder)๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ, ์™ผ์ชฝ ์ž์‹ ๋…ธ๋“œ, ์˜ค๋ฅธ์ชฝ ์ž์‹ ๋…ธ๋“œ ์ˆœ์„œ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค. ์œ„ ์‚ฌ์ง„์˜ ์ˆœํšŒ ๊ฒฐ๊ณผ๋Š” 1 2 4 5 3 6 7์ด๋‹ค. ์ค‘์œ„์ˆœํšŒ(inorder)๋Š” ์™ผ์ชฝ ์ž์‹..
[JavaScript/section 8] 02 - ์ด์ง„์ˆ˜ ์ถœ๋ ฅ(์žฌ๊ท€)
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 02 - ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์ด์ง„์ˆ˜ ์ถœ๋ ฅ 10์ง„์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด 2์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ • 1๋‹จ๊ณ„: ๋ณ€ํ™˜ํ•˜๋ ค๋Š” ์ˆ˜๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ํ›„ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ๊ธฐ๋ก 2๋‹จ๊ณ„: 1๋‹จ๊ณ„์—์„œ ๊ณ„์‚ฐํ•œ ๋ชซ์„ 2๋กœ ๋‚˜๋ˆˆ ํ›„ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ๊ธฐ๋ก, ...๋ชซ์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ๊ธฐ๋กํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์•„๋ž˜์—์„œ ์œ„๋กœ ์ฝ์œผ๋ฉด 2์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ ์™„๋ฃŒ ๐Ÿ‘ ํ’€์ด ๋ฐฉ๋ฒ• ์ด์ง„์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณผ์ •์„ ๋ณด๋ฉด ๊ธฐ๋กํ•œ ๋‚˜๋จธ์ง€ ๊ฐ’์„ ์•„๋ž˜์—์„œ ์œ„๋กœ ์ฝ์–ด์•ผ(LIFO ๊ตฌ์กฐ) 2์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (์ฐธ๊ณ ) ์žฌ๊ท€ํ•จ์ˆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชซ(L)์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•˜์—ฌ DFS() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ ์ธ์ž๋Š” 2๋กœ ๋‚˜๋ˆˆ ๋ชซ(์ •์ˆ˜)์„ ..
[JavaScript/section 8] 01 - ์žฌ๊ท€ํ•จ์ˆ˜
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 01 - ์žฌ๊ท€ํ•จ์ˆ˜ ์ž์—ฐ์ˆ˜ N์ด ์ž…๋ ฅ๋˜๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ 1๋ถ€ํ„ฐ N๊นŒ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๐Ÿ‘ ํ’€์ด ๋ฐฉ๋ฒ• ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋„์›€์ด ๋œ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์€ ๋‹ค์Œ ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)์€ ๋ฌด์—‡์ธ๊ฐ€? ๋ผ๋Š” ๊ธ€์— ๋”ฐ๋กœ ์ •๋ฆฌํ•˜์˜€๋‹ค. solution ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ DFS(n)๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ๊ฐ’. ์ง€์—ญ ๋ณ€์ˆ˜ ๋“ฑ์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค. L์ด 0์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ DFS(L - 1) ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์ถ”๊ฐ€๋กœ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค. L์ด 0๊ณผ ๊ฐ™์œผ๋ฉด returnํ•˜๊ณ  ์Šคํƒ์— ์ €์žฅ๋œ ํ•จ์ˆ˜๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ํ˜ธ์ถœํ•˜์—ฌ console.log๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค. ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์ข…๋ฃŒ๋˜๋ฉด..
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณด์ถฉ] ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame)
ยท
Algorithm/๋ณด์ถฉ
๐Ÿ“Œ ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame) ๋ฉ”๋ชจ๋ฆฌ ์Šคํƒ(Stack) ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ๊ด€๊ณ„๋˜๋Š” ์ง€์—ญ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ์ด๋‹ค. ์Šคํƒ ์˜์—ญ์€ ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ๊ณผ ํ•จ๊ป˜ ํ• ๋‹น๋˜๋ฉฐ, ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ์™„๋ฃŒ๋˜๋ฉด ์†Œ๋ฉธํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒ์—๋Š” ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜, ํ˜ธ์ถœ์ด ๋๋‚œ ๋’ค ๋Œ์•„๊ฐˆ ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๊ฐ’, ํ•จ์ˆ˜์—์„œ ์„ ์–ธ๋œ ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ์ด ์ €์žฅ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ๋ญ”๋ฐโ“โ“ ์ด๋ ‡๊ฒŒ ์Šคํƒ ์˜์—ญ์— ์ฐจ๋ก€๋Œ€๋กœ ์ €์žฅ๋˜๋Š” ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์ •๋ณด๋ฅผ ์Šคํƒ ํ”„๋ ˆ์ž„์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์Šคํƒ ํ”„๋ ˆ์ž„ ๋•๋ถ„์— ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ์ด ๋ชจ๋‘ ๋๋‚œ๋’ค์— ํ•ด๋‹น ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ ํ”„๋ ˆ์ž„(Stack Frame) ๋™์ž‘ ๋ฐฉ์‹ ex) ์žฌ๊ท€ํ•จ์ˆ˜ function solution(n) { function DFS(L) { i..
[JavaScript/section 7] 12 - ๋งˆ๊ตฌ๊ฐ„ ์ •ํ•˜๊ธฐ
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 12 - ๋งˆ๊ตฌ๊ฐ„ ์ •ํ•˜๊ธฐ(๊ฒฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜) N๊ฐœ์˜ ๋งˆ๊ตฌ๊ฐ„์ด ์ˆ˜์ง์„ ์ƒ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋งˆ๊ตฌ๊ฐ„์€ x1, x2, ..., xN์˜ ์ขŒํ‘œ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋งˆ๊ตฌ๊ฐ„๊ฐ„์— ์ขŒํ‘œ๊ณผ ์ค‘๋ณต๋˜๋Š” ์ผ์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ ๋งˆ๊ตฌ๊ฐ„์—๋Š” ํ•œ ๋งˆ๋ฆฌ์˜ ๋ง๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ณ , ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ๋ง์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๊ฒŒ ๋ง์„ ๋งˆ๊ตฌ๊ฐ„์— ๋ฐฐ์น˜ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. C๋งˆ๋ฆฌ์˜ ๋ง์„ N๊ฐœ์˜ ๋งˆ๊ตฌ๊ฐ„์— ๋ฐฐ์น˜ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ๋ง์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ๊ทธ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•ด๋ณด์ž! ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜ N๊ณผ C๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ๋งˆ๊ตฌ๊ฐ„์˜ ์ขŒํ‘œ๊ฐ€ ์ฐจ๋ก€๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ๋ง์˜ ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ž…๋ ฅ์˜ˆ์ œ 5 3 1 2 8 4 9 ์ถœ๋ ฅ์˜ˆ์ œ 3 ๐Ÿ‘ ํ’€์ด ๋ฐฉ๋ฒ• ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‘ ๋ง์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ๋Œ€๊ฐ€ ๋˜๋Š” ๊ทธ ์ตœ๋Œ€๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ..
[JavaScript/section 7] 11 - ๋ฎค์ง ๋น„๋””์˜ค
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 11 - ๋ฎค์ง ๋น„๋””์˜ค(๊ฒฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜) DVD์—๋Š” ์ด N๊ฐœ์˜ ๊ณก์ด ๋“ค์–ด๊ฐ€๋Š”๋ฐ, DVD์— ๋…นํ™”ํ•  ๋•Œ์—๋Š” ๋ผ์ด๋ธŒ์—์„œ์˜ ์ˆœ์„œ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ 1๋ฒˆ ๋…ธ๋ž˜์™€ 5๋ฒˆ ๋…ธ๋ž˜๋ฅผ ๊ฐ™์€ DVD์— ๋…นํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 1๋ฒˆ๊ณผ 5๋ฒˆ ์‚ฌ์ด์˜ ๋ชจ๋“  ๋…ธ๋ž˜๋„ ๊ฐ™์€ DVD์— ๋…นํ™”ํ•ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ, ํ•œ ๋…ธ๋ž˜๋ฅผ ์ชผ๊ฐœ์„œ ๋‘ ๊ฐœ์˜ DVD์— ๋…นํ™”ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. M๊ฐœ์˜ DVD์— ๋ชจ๋“  ๋™์˜์ƒ์„ ๋…นํ™”ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด ๋•Œ DVD์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œ๋กœ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  M๊ฐœ์˜ DVD๋Š” ๋ชจ๋‘ ๊ฐ™์€ ํฌ๊ธฐ์—ฌ์•ผ ์ œ์กฐ์›๊ฐ€๊ฐ€ ์ ๊ฒŒ ๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ๊ฐ™์€ ํฌ๊ธฐ๋กœ ํ•ด์•ผ ํ•œ๋‹ค. ์œ„ ๋ฌธ์ œ๋ฅผ ์ •๋ฆฌํ•ด๋ณด๋ฉด M๊ฐœ์˜ ๊ฐ™์€ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” DVD์— ์Œ์•…์„ ๋‹ด์•„์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ ํฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์ตœ์†Œ๊ฐ€ ๋˜๋Š” ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ํŠน์ •ํ•œ ์ƒํ™ฉ์—์„œ ์ตœ์ ์˜ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋ถ„ ํƒ..
[JavaScript/section 7] 10 - ์ด๋ถ„ ๊ฒ€์ƒ‰
ยท
Algorithm/์ธํ”„๋Ÿฐ(inflearn)
๐Ÿ“Œ 10 - ์ด๋ถ„ ๊ฒ€์ƒ‰ ์ž„์˜์˜ N๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. N๊ฐœ์˜ ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ N๊ฐœ์˜ ์ˆ˜์ค‘ ํ•œ ๊ฐœ์˜ ์ˆ˜์ธ target์ด ์ฃผ์–ด์ง€๋ฉด ์ด๋ถ„ ๊ฒ€์ƒ‰์œผ๋กœ target์ด ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ ๋ช‡ ๋ฒˆ์งธ์— ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹จ, ์ค‘๋ณต๊ฐ’์€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ถ„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€โ“ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ํŠน์ •ํ•œ ๊ฐ’์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ด๋ถ„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(logN)์œผ๋กœ ์ˆœ์ฐจ ๊ฒ€์ƒ‰์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„ O(N)์— ๋น„ํ•˜๋ฉด ์ƒ๋Œ€์ ์œผ๋กœ ๋น ๋ฅธ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์†ํ•œ๋‹ค. ๋‹ค์Œ ํ’€์ด ๋ฐฉ๋ฒ•์„ ๋ณด๋ฉด ๊ทธ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ’€์ด ๋ฐฉ๋ฒ• ๋ฐฐ์—ด์„ ์ •๋ ฌํ•œ๋‹ค. ์ด๋ถ„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด๋‹ค. ๋ฐฐ์—ด์˜ ์ฒ˜์Œ(start)๊ณผ ๋(end)์˜ ์ธ๋ฑ์Šค๋ฅผ ๋”ํ•œ ํ›„ 2๋กœ ๋‚˜๋ˆ„์–ด ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค(mid)..
_์„ฑํ˜ธ_
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (4 Page)