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

Coding Test ์ฝ”๋”ฉํ…Œ์ŠคํŠธ13

Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 7์žฅ ์ •์ˆ˜๋ก  ๋ฌธ์ œ #18 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ M์ด์ƒ N์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘ ์†Œ์ˆ˜ ๋ชจ๋‘ ์ถœ๋ ฅ ์ตœ๋Œ€ ํฌ๊ธฐ 1,000,000์ด๋ฏ€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N^2)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋‹ค. ๊ณผ์ • 1. ํฌ๊ธฐ๊ฐ€ N+1์ธ ๋ฐฐ์—ด ์ƒ์„ฑ, ๊ฐ ์š”์†Œ์— ์ธ๋ฑ์Šค ๋Œ€์ž… // ์ธ๋ฑ์Šค ์ˆœ์„œ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์‹ ๊ฒฝ ์•ˆ ์“ฐ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ 2. 1์€ ์†Œ์ˆ˜ X์ด๋ฏ€๋กœ ์‚ญ์ œ, 2๋ถ€ํ„ฐ N์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ํƒ์ƒ‰ํ•˜์—ฌ ๊ฐ’์ด ์ธ๋ฑ์Šค์™€ ์ผ์น˜ํ•˜๋ฉด ๊ทธ๋Œ€๋กœ ๋‘๊ณ  // ์ฒ˜์Œ ์„ ํƒํ•œ ์ˆ˜๋Š” ์†Œ์ˆ˜๋กœ ์ธ์ •, ๊ทธ ๋ฐฐ์ˆ˜๋Š” ์‚ญ์ œ 3. ๋‚จ์•„ ์žˆ๋Š” ์ˆ˜ ๋ชจ๋‘ ์ถœ๋ ฅ // M์ด์ƒ N์ดํ•˜ *N์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•˜๋Š” ์ด์œ  N์„ ๋‘ ์ˆ˜์˜ ๊ณฑ a*b๋กœ ํ‘œํ˜„ํ•˜๋ฉด ๊ฐ ์ˆ˜์ธ a, b๋Š” ๋‘˜์ค‘ ํ•˜๋‚˜๋Š” N์˜ ์ œ๊ณฑ๊ทผ๋ณด๋‹ค ํด ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ N์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•˜๋ฉด ์ „์ฒด ๋ฒ”์œ„์˜ ์†Œ์ˆ˜ ํƒ์ƒ‰ ๊ฐ€๋Šฅ for(int i = 2; i 2022. 11. 20.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 6์žฅ ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ #16 32 ๋™์ „์˜ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’ == ๊ฑฐ์Šค๋ฆ„๋ˆ์„ ๊ฐ€์žฅ ์ ์€ ๊ฐœ์ˆ˜์˜ ์ง€ํ๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์ฃผ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋™์ „์˜ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜N, ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ๊ฐ€๊ฒฉK, ๋™์ „ ์ˆ˜๋Š” ์ถฉ๋ถ„ ๊ฐ€์žฅ ๊ฐ€๊ฒฉ์ด ํฐ ๊ธˆ์•ก์˜ ๋™์ „๋ถ€ํ„ฐ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค. // ๋จผ์ € ๊ทธ๋ฆฌ๋””๋กœ ํ’€์–ด๋„ ๋˜๋Š”์ง€ ํŒ๋‹จํ•œ ํ›„ ๊ตฌํ˜„ ๊ทธ๋Ÿฌ๋‚˜, ๋ฐ˜๋ก€๋ฅผ ์ž˜ ๋”ฐ์ ธ๋ด์•ผ ํ•œ๋‹ค. ex) 135 9 51111 5๊ฐœ 333 3๊ฐœ ๋ฐฐ์ˆ˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์œผ๋ฏ€๋กœ ๊ดœ์ฐฎ๋‹ค. // Ai-1์˜ ๋ฐฐ์ˆ˜ Ai ์˜ค๋ฆ„์ฐจ์ˆœ์ด๋ฏ€๋กœ ์—ญ์ˆœ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ๊ฐ€์žฅ ๊ฐ€๊ฒฉ์ด ํฐ ๊ธˆ์•ก๋ถ€ํ„ฐ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฐ€์žฅ ๊ฐ€๊ฒฉ์ด ํฐ ๊ฒƒ ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ฐพ์•„์„œ K๋ณด๋‹ค ์ž‘์€ ๊ฐ’ ์ฐพ๊ธฐ int count = 0; // ๋™์ „์˜ ๊ฐœ์ˆ˜ ์ดˆ๊ธฐํ™” for(int i = N-1; i>=0; i--) { ๋™์ „ ์ˆ˜ += ๋ชฉํ‘œ๊ธˆ์•ก K/ํ˜„์žฌ ๋™์ „์˜ ๊ฐ€์น˜ K = K % ํ˜„์žฌ ๋™์ „์˜ .. 2022. 11. 20.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 5์žฅ ํƒ์ƒ‰ ๋ฌธ์ œ ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค. # 13 ์—ฐ๊ฒฐ ์š”์†Œ์˜ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ ์—ฐ๊ฒฐ์š”์†Œ๋Š” ์—์ง€๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ ex) 1, 2, 5์™€ 3, 4, 6 ์ด 2๊ฐœ DFS๋Š” ๊ทธ๋ž˜ํ”„ ์™„์ „ ํƒ์ƒ‰์ด๋ฏ€๋กœ, ํ•œ๋ฒˆ์˜ DFS๊ฐ€ ๋๋‚  ๋•Œ ๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ์ด ์—ฐ๊ฒฐ์š”์†Œ 1๊ฐœ์ด๋‹ค. ์ฆ‰ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•  ๋™์•ˆ DFS ํšŸ์ˆ˜๊ฐ€ ์—ฐ๊ฒฐ์š”์†Œ์˜ ๊ฐœ์ˆ˜์ด๋‹ค. ๋งŒ์•ฝ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ ๋˜์–ด ์žˆ์—ˆ๋‹ค๋ฉด DFS ํšŸ์ˆ˜๋Š” 1์ด๋‹ค. ๋ฐฉํ–ฅ์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„์ด๋ฏ€๋กœ ์–‘๋ฐฉํ–ฅ ๋ชจ๋‘ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ N=1,000์ด๋ฏ€๋กœ O(n^2)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. if(๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด) { // ๊ฐ ์—ฐ๊ฒฐ์š”์†Œ์˜ ๋ฐฉ๋ฌธ ์—ฌ๋ถ€ count++; DFS(i); } DFS(int i) { if(visited[.. 2022. 11. 20.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 4์žฅ ์ •๋ ฌ ๋ฌธ์ œ ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค. # 11 15 ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ1 (๋ฐฑ์ค€ 2750) ์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜, ์ฆ‰ ๋ฐ์ดํ„ฐ N์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๊ฐ€ 1,000์ด๋ฏ€๋กœ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2) ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฒ„๋ธ” ์ •๋ ฌ์„ ์ด์šฉํ•˜์—ฌ ์ •๋ ฌ 0๋ฒˆ์งธ ๋ฃจํ”„์—์„œ 0๊ณผ 1 ๋น„๊ตํ•˜์—ฌ swap, 1๊ณผ 2 ๋น„๊ตํ•˜์—ฌ swap ... // ์˜ค๋ฆ„์ฐจ์ˆœ์ธ ๊ฒฝ์šฐ ์•ž์ด ๋” ํฌ๋ฉด swap ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฒ”์œ„ -1 for 0 N-1 // ๋ฃจํ”„์˜ ๊ฐœ์ˆ˜, ๋งˆ์ง€๋ง‰์—” ๋ฐ์ดํ„ฐ 2๊ฐœ๊ฐ€ ์ •๋ ฌ๋˜๋ฏ€๋กœ N์ด ์•„๋‹ˆ๋ผ N-1๋ฒˆ ๋ฃจํ”„ for 0 N-1-i // ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฒ”์œ„, -i๋Š” ๋ฃจํ”„์˜ ํšŸ์ˆ˜๊ฐ€ ์ง„ํ–‰๋ ์ˆ˜๋ก ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฒ”์œ„๊ฐ€ 1๊ฐœ์”ฉ ์ค„์–ด๋“œ๋ฏ€๋กœ # 12 17 ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ž๋ฆฟ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ (๋ฐฑ์ค€ 1427) ์ˆ˜์˜ ๊ฐ.. 2022. 11. 20.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 3์žฅ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฌธ์ œ # 1 ๊ฐ ์ž๋ฆฌ ์ˆซ์ž์˜ ํ•ฉ ๊ตฌํ•˜๊ธฐ java ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ N N๊ฐœ์˜ ์ˆซ์ž์˜ ๋‚˜์—ด 5 54321 54321/10000 == 5 54321%10000 == 4321 4321/1000 == 4 4321%1000 == 321 ์ด๋Ÿฐ ๋กœ์ง์œผ๋กœ ํ’€๋ฉด ๋ณต์žกํ•˜๋‹ค. ๊ตฌํ˜„ํ•˜๊ธฐ๋„ ์–ด๋ ค์šธ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊ฒƒ์€ N์ด 100์ด๋ฏ€๋กœ 100์ž๋ฆฌ ์ˆ˜๋ฅผ int, long ํ˜•์œผ๋กœ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ž๋ฃŒํ˜•์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋Ÿฌ๋ฏ€๋กœ String์œผ๋กœ ๋ฐ›์•„์•ผํ•œ๋‹ค. ๋ฌธ์ž์—ด "54321"์˜ ๊ฐ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋ฝ‘์•„๋‚ด๋ ค๋ฉด toCharArray() ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜์—ฌ ๋ฌธ์žํ˜• ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๊ณ ๋‚˜์„œ ๋ฌธ์ž ์ˆซ์ž๋ฅผ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ์œ„ํ•ด '1' -> 1 ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์ด์šฉํ•œ๋‹ค. ๋ฌธ์ž'1'์„ ์ˆซ์ž1๋กœ ๋ณ€ํ™˜ '1' - 48 ๋˜๋Š” '1' .. 2022. 11. 20.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 8์žฅ ๊ทธ๋ž˜ํ”„ ์ด๋ก  # 20 ๊ทธ๋ž˜ํ”„ ๊ทธ๋ž˜ํ”„๋Š” ๋…ธ๋“œ์™€ ์—ฃ์ง€๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์ด๋‹ค. ๋…ธ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋‹จ์œ„ ์—์ง€๋Š” ๋…ธ๋“œ๋กœ ์—ฐ๊ฒฐ ํŠธ๋ฆฌ๋„ ๊ทธ๋ž˜ํ”„์˜ ์ผ์ข… ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ๊ทธ๋ž˜ํ”„์˜ ์‹ธ์ดํด์ด ์ƒ์„ฑ๋˜๋Š”์ง€ ํŒ๋ณ„ ์œ„์ƒ์ •๋ ฌ ์กฐ๊ฑด ์‹ธ์ดํดX, ๋ฐฉํ–ฅO ์ „ํ›„ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์„ ํ˜•์œผ๋กœ ์ •๋ ฌ ex) ์ˆ˜๊ฐ•์‹ ์ฒญ ์ˆ˜1 -> ์ˆ˜2 ๊ฒŒ์ž„ ๋นŒ๋“œ์˜ค๋” ์ฃผ์˜ ๊ฒฐ๊ณผ๊ฐ€ ์œ ์ผํ•˜์ง€ ์•Š๋‹ค. ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹ค์ต์ŠคํŠธ๋ผ ์กฐ๊ฑด ์‹œ์ž‘์ O, ์Œ์ˆ˜๊ฐ„์„ X ๋ฒจ๋งŒํฌ๋“œ ์กฐ๊ฑด ์‹œ์ž‘์ O, ์Œ์ˆ˜๊ฐ„์„  ok ์Œ์ˆ˜ ์‹ธ์ดํด์ด ์žˆ๋Š”์ง€? ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ์Œ์˜ ๋ฌดํ•œ๋Œ€๋กœ ๊ฐ„๋‹ค. ex) ์‹œ๊ฐ„ ์—ฌํ–‰, ์›œํ™€ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ ์กฐ๊ฑด ์‹œ์ž‘์ X ๋ชจ๋“  ๋…ธ๋“œ ์Œ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋‹จ์  ์‹œ๊ฐ„๋ณต์žก๋„ ๋‚˜์˜๋‹ค. // ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ž‘์„ ๋•Œ ๋˜๋Š” ๋ชจ๋“  ๋…ธ๋“œ์Œ์„ ๊ตฌํ• ๋•Œ ์‚ฌ์šฉ ์ตœ์†Œ์‹ ์žฅํŠธ๋ฆฌ MST ๋ชจ๋“ .. 2022. 11. 18.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 7์žฅ ์ •์ˆ˜๋ก  ์ด๋ก  #18 ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ(์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด) ์†Œ์ˆ˜(prime number)? ์•ฝ์ˆ˜๊ฐ€ 1๊ณผ ์ž๊ธฐ ์ž์‹  ์ด์™ธ์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ˆ˜ // 1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ๋Š” ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ณผ์ • 1. ๊ตฌํ•˜๊ณ ์žํ•˜๋Š” ๋ฒ”์œ„ ๋งŒํผ 1์ฐจ์› ๋ฐฐ์—ด ์ƒ์„ฑ 2. 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ // 1์€ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์‚ญ์ œ ๋ฐฐ์—ด์—์„œ ํ˜„์žฌ ์„ ํƒ๋œ ์ˆซ์ž์˜ ๋ฐฐ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ˆ˜๋ฅผ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๋ฉฐ ์‚ญ์ œ ์ฒ˜์Œ ์„ ํƒ๋œ ์ˆซ์ž๋Š” ์ง€์šฐ์ง€ ์•Š๋Š”๋‹ค. // ์†Œ์ˆ˜์ด๋ฏ€๋กœ 3. ๋๊นŒ์ง€ ๊ณผ์ • 2๋ฅผ ๋ฐ˜๋ณตํ›„ ๋‚จ์•„ ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅ // ์†Œ์ˆ˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š”? ์ด์ค‘ for๋ฌธ ์ด๋ฏ€๋กœ O(n^2) ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์•„๋‹ˆ๋‹ค. ์‹ค์ œ๋Š” O(nlog(logn)) // ๋ฐ”๊นฅ for๋ฌธ์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ƒ๋žต๋˜๋ฏ€๋กœ # 19 ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ(์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•) ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ž€.. 2022. 11. 18.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 6์žฅ ๊ทธ๋ฆฌ๋”” ์ด๋ก  # 17 ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (ํƒ์š•๋ฒ•) ํ˜„์žฌ ๋‹จ๊ณ„์˜ ์„ ํƒ์ง€ ์ค‘์—์„œ ์ตœ์„ ์„ ์„ ํƒํ•ด๋‚˜๊ฐ€๋‹ค ๋ณด๋ฉด, ๊ฒฐ๊ณผ๊ฐ€ ์ตœ์„ ์ผ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์ตœ์„ ์„ ๋ณด์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ทธ๋ฆฌ๋””๋กœ ํ’€์–ด๋„ ๋˜๋Š”์ง€ ํŒ๋‹จํ•ด์•ผํ•œ๋‹ค. ๊ณผ์ • 1. ํ•ด์„ ํƒ: ํ˜„์žฌ ๋‹จ๊ณ„์—์„œ ๊ฐ€์žฅ ์ตœ์„ ์ธ ํ•ด๋ฅผ ์„ ํƒํ•œ๋‹ค. 2. ์ ์ ˆ์„ฑ ๊ฒ€์‚ฌ: ํ˜„์žฌ ์„ ํƒํ•œ ์„ ํƒ์ง€๊ฐ€ ์ „์ฒด ๋ฌธ์ œ์˜ ์ œ์•ฝ์กฐ๊ฑด์„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. 3. ํ•ด๊ฒ€์‚ฌ: ๊ฒฐ๊ณผ๊ฐ€ ์ „์ฒด๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ๋ชปํ•˜๋ฉด 1๋กœ ๋Œ์•„๊ฐ€ ๋ฐ˜๋ณตํ•œ๋‹ค. 2022. 11. 18.
Do it ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•˜๋ฃจ์ฝ”๋”ฉ 5์žฅ ํƒ์ƒ‰ ์ด๋ก  # 14 ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(DFS) ์‹œ์ž‘ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•˜์—ฌ ํƒ์ƒ‰ํ•  ํ•œ์ชฝ ๋ถ„๊ธฐ๋ฅผ ์ •ํ•˜์—ฌ ์ตœ๋Œ€ ๊นŠ์ด๊นŒ์ง€ ํƒ์ƒ‰์„ ๋งˆ์นœ ํ›„, ๋‹ค๋ฅธ ๋ถ„๊ธฐ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์‹œ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ธฐ๋Šฅ ํŠน์ง• ์‹œ๊ฐ„๋ณต์žก๋„ ๊ทธ๋ž˜ํ”„ ์™„์ „ํƒ์ƒ‰ LIFO ์žฌ๊ท€ํ•จ์ˆ˜ ๋˜๋Š” Stack์œผ๋กœ ๊ตฌํ˜„ O(V+E) // ์žฌ๊ท€ํ•จ์ˆ˜ ๊ตฌํ˜„์‹œ ์Šคํƒ ์˜ค๋ฒ„ ํ”Œ๋กœ์šฐ ์œ ์˜ A{ A(); } ์‘์šฉ ๋‹จ์ ˆ์  ์ฐพ๊ธฐ, ๋‹จ์ ˆ์„  ์ฐพ๊ธฐ, ์‚ฌ์ดํด ์ฐพ๊ธฐ, ์œ„์ƒ์ •๋ ฌ 1. DFS๋ฅผ ์‹œ์ž‘ํ•  ๋…ธ๋“œ๋ฅผ ์ •ํ•œ ํ›„ ์‚ฌ์šฉํ•  ์ž๋ฃŒ๊ตฌ์กฐ ์ดˆ๊ธฐํ™” ์›๋ณธ ๊ทธ๋ž˜ํ”„, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„, ๋ฐฉ๋ฌธ๋ฐฐ์—ด 1์— T, ์Šคํƒ์— 1 2. ์Šคํƒ์—์„œ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ธ ํ›„ ๊บผ๋‚ธ ๋…ธ๋“œ์˜ ์ธ์ ‘๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž… 3. ์Šคํƒ์— ๊ฐ’์ด ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ์ด๋ฏธ ๋‹ค๋…€๊ฐ„ ๋…ธ๋“œ๋Š” ์žฌ๋ฐฉ๋ฌธX pop() ํ•˜๋ฉด์„œ ํƒ์ƒ‰ ์ˆœ์„œ์— ๊ธฐ๋ก, ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ ๋ฐฐ์—ด์—์„œ ์ฒดํฌํ›„.. 2022. 11. 17.
728x90