๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Coding Test ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 5์žฅ ํƒ์ƒ‰ ์ด๋ก 

by ๋น„์†Œ์•ผ 2022. 11. 17.
728x90

# 14 ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(DFS)

์‹œ์ž‘ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ํƒ์ƒ‰ํ•  ํ•œ์ชฝ ๋ถ„๊ธฐ๋ฅผ ์ •ํ•˜์—ฌ ์ตœ๋Œ€ ๊นŠ์ด๊นŒ์ง€ ํƒ์ƒ‰์„ ๋งˆ์นœ ํ›„, ๋‹ค๋ฅธ ๋ถ„๊ธฐ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์‹œ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

๊ธฐ๋Šฅ ํŠน์ง• ์‹œ๊ฐ„๋ณต์žก๋„
๊ทธ๋ž˜ํ”„ ์™„์ „ํƒ์ƒ‰ LIFO
์žฌ๊ท€ํ•จ์ˆ˜ ๋˜๋Š” Stack์œผ๋กœ ๊ตฌํ˜„
O(V+E)

 

 // ์žฌ๊ท€ํ•จ์ˆ˜ ๊ตฌํ˜„์‹œ ์Šคํƒ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ ์œ ์˜

A{

   A();

}

 

์‘์šฉ ๋‹จ์ ˆ์  ์ฐพ๊ธฐ, ๋‹จ์ ˆ์„  ์ฐพ๊ธฐ, ์‚ฌ์ดํด ์ฐพ๊ธฐ, ์œ„์ƒ์ •๋ ฌ

 

1. DFS๋ฅผ ์‹œ์ž‘ํ•  ๋…ธ๋“œ๋ฅผ ์ •ํ•œ ํ›„ ์‚ฌ์šฉํ•  ์ž๋ฃŒ๊ตฌ์กฐ ์ดˆ๊ธฐํ™”

์›๋ณธ ๊ทธ๋ž˜ํ”„, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„, ๋ฐฉ๋ฌธ๋ฐฐ์—ด 1์— T, ์Šคํƒ์— 1

 

2. ์Šคํƒ์—์„œ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ธ ํ›„ ๊บผ๋‚ธ ๋…ธ๋“œ์˜ ์ธ์ ‘๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…

 

3. ์Šคํƒ์— ๊ฐ’์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

์ด๋ฏธ ๋‹ค๋…€๊ฐ„ ๋…ธ๋“œ๋Š” ์žฌ๋ฐฉ๋ฌธX

 

pop() ํ•˜๋ฉด์„œ ํƒ์ƒ‰ ์ˆœ์„œ์— ๊ธฐ๋ก,

์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์—ด์—์„œ ์ฒดํฌํ›„ push()

 

# 15 ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰ BFS

์‹œ์ž‘ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•ด ์‹œ์ž‘๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ฅผ ๋จผ์ € ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

๊ธฐ๋Šฅ ํŠน์ง• ์‹œ๊ฐ„๋ณต์žก๋„
๊ทธ๋ž˜ํ”„ ์™„์ „ ํƒ์ƒ‰ FIFO
Queue
O(V+E)

 

์‘์šฉ ์ตœ๋‹จ๊ฒฝ๋กœ

 

1. BFS๋ฅผ ์‹œ์ž‘ํ•  ๋…ธ๋“œ๋ฅผ ์ •ํ•œํ›„ ์‚ฌ์šฉํ•  ์ž๋ฃŒ๊ตฌ์กฐ ์ดˆ๊ธฐํ™”

์›๋ณธ ๊ทธ๋ž˜ํ”„, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„, ๋ฐฉ๋ฌธ๋ฐฐ์—ด 1์— T, ํ์— 1

 

2. ํ์—์„œ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ธ ํ›„, ๊บผ๋‚ธ ๋…ธ๋“œ์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ํ์— ์‚ฝ์ž…

 

3. ํ์— ๊ฐ’์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

์ด๋ฏธ ๋‹ค๋…€๊ฐ„ ๋…ธ๋“œ๋Š” ์žฌ๋ฐฉ๋ฌธX

 

poll()ํ•˜๋ฉด์„œ ํƒ์ƒ‰ ์ˆœ์„œ์— ๊ธฐ๋ก,

์ธ์ ‘๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์—ด์—์„œ ์ฒดํฌํ›„ add()

 

# 16 ์ด์ง„ ํƒ์ƒ‰ (Binary Search)

๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ, ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋Œ€์ƒ ๋ฐ์ดํ„ฐ์˜ ์ค‘์•™๊ฐ’๊ณผ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ด๋ฉด์„œ ์ฐพ๋Š”๋‹ค.

 

๊ธฐ๋Šฅ  ํŠน์ง•  ์‹œ๊ฐ„๋ณต์žก๋„ 
ํƒ€๊ฒŸ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ์ค‘์•™๊ฐ’ ๋น„๊ต๋ฅผ ํ†ตํ•œ ์ถ•์†Œ ๋ฐฉ์‹ O(logN)

 

์กฐ๊ฑด

์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ

๊ณผ์ •

1. ํ˜„์žฌ ๋ฐ์ดํ„ฐ์…‹์˜ ์ค‘์•™๊ฐ’ median์„ ์„ ํƒ

2. ๋น„๊ต ํ•˜์—ฌ ์ฐพ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ < ์ค‘์•™๊ฐ’์ด๋ฉด ์˜ค๋ฅธ์ชฝ ๋ฒ„๋ฆฌ๊ณ  ์™ผ์ชฝ ์„ ํƒ

3. ๋น„๊ต ํ•˜์—ฌ ์ฐพ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ > ์ค‘์•™๊ฐ’์ด๋ฉด ์™ผ์ชฝ ๋ฒ„๋ฆฌ๊ณ  ์˜ค๋ฅธ์ชฝ ์„ ํƒ

3. 2, 3๊ณผ์ • ๋ฐ˜๋ณตํ•˜์—ฌ ์ฐพ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ == ์ค‘์•™๊ฐ’ ์ด๋ฉด ์ข…๋ฃŒ

728x90