๋์ด๋ : ๊ณจ๋ 5 ๊ฑธ๋ฆฐ ์๊ฐ : 25๋ถ ๋ฌธ์ ์ ๋ก์์ฝ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ๋ฌธ์ ์ ๋ก์์ฝ์ ๋นจ๊ฐ์๊ณผ ์ด๋ก์์ ์ฐจ์ด๋ฅผ ๊ฑฐ์ ๋๋ผ์ง ๋ชปํ๋ค. ๋ฐ๋ผ์, ์ ๋ก์์ฝ์ธ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ์ ์๋ ์ฌ๋์ด ๋ณด๋ ๊ทธ๋ฆผ๊ณผ๋ ์ข ๋ค๋ฅผ ์ ์๋ค. ํฌ๊ธฐ๊ฐ N×N์ธ ๊ทธ๋ฆฌ๋์ ๊ฐ ์นธ์ R(๋นจ๊ฐ), G(์ด๋ก), B(ํ๋) ์ค ํ๋๋ฅผ ์์น ํ ๊ทธ๋ฆผ์ด ์๋ค. ๊ทธ๋ฆผ์ ๋ช ๊ฐ์ ๊ตฌ์ญ์ผ๋ก ๋๋์ด์ ธ ์๋๋ฐ, ๊ตฌ์ญ์ ๊ฐ์ ์์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๋, ๊ฐ์ ์์์ด ์ํ์ข์ฐ๋ก ์ธ์ ํด ์๋ ๊ฒฝ์ฐ์ ๋ ๊ธ์๋ ๊ฐ์ ๊ตฌ์ญ์ ์ํ๋ค. (์์์ ์ฐจ์ด๋ฅผ ๊ฑฐ์ ๋๋ผ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๋ ๊ฐ์ ์์์ด๋ผ ํ๋ค) ์๋ฅผ ๋ค์ด, ๊ทธ๋ฆผ์ด ์๋์ ๊ฐ์ ๊ฒฝ์ฐ์ RRRBB GGBBB BBBRR BBRRR RRRRR ์ ๋ก์์ฝ์ด ์๋ ์ฌ๋์ด ๋ดค์ ๋ ๊ตฌ์ญ์ ์๋ ์ด 4๊ฐ์ด๋ค. (๋นจ๊ฐ 2, ํ๋..
๋์ด๋ : ๊ณจ๋ 5 ๊ฑธ๋ฆฐ ์๊ฐ : 1์๊ฐ ๋ฌธ์ ์ฐ๊ตฌ์ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์๊ธฐ 2012๋ ! ๋๋์ด 2๋ ๊ฐ ์๋ง์ ๊ตญ๋ฏผ๋ค์ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ ๊ฒ์ ACM Craft (Association of Construction Manager Craft)๊ฐ ๋ฐ๋งค๋์๋ค. ์ด ๊ฒ์์ ์ง๊ธ๊น์ง ๋์จ ๊ฒ์๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ ACMํฌ๋ํํธ๋ ๋ค์ด๋๋ฏนํ ๊ฒ์ ์งํ์ ์ํด ๊ฑด๋ฌผ์ ์ง๋ ์์๊ฐ ์ ํด์ ธ ์์ง ์๋ค. ์ฆ, ์ฒซ ๋ฒ์งธ ๊ฒ์๊ณผ ๋ ๋ฒ์งธ ๊ฒ์์ด ๊ฑด๋ฌผ์ ์ง๋ ์์๊ฐ ๋ค๋ฅผ ์๋ ์๋ค. ๋งค ๊ฒ์์์ ์ ๊ฑด๋ฌผ์ ์ง๋ ์์๊ฐ ์ฃผ์ด์ง๋ค. ๋ํ ๋ชจ๋ ๊ฑด๋ฌผ์ ๊ฐ๊ฐ ๊ฑด์ค์ ์์ํ์ฌ ์์ฑ์ด ๋ ๋๊น์ง Delay๊ฐ ์กด๋ฌธ์ ์ธ์ฒด์ ์น๋ช ์ ์ธ ๋ฐ์ด๋ฌ์ค๋ฅผ ์ฐ๊ตฌํ๋ ์ฐ๊ตฌ์์์ ๋ฐ์ด๋ฌ์ค๊ฐ ์ ์ถ๋์๋ค. ๋คํํ ๋ฐ์ด๋ฌ์ค๋ ์์ง ํผ์ง์ง ์์๊ณ , ๋ฐ์ด๋ฌ์ค์ ํ์ฐ์ ๋ง๊ธฐ ์ํด์ ์ฐ..
๋ธ๋ก ์ด๋ํ๊ธฐ โ โ โ โโ LEVEL 3 ๋ฌธ์ ๋ธ๋ก ์ด๋ํ๊ธฐ ๋ฌธ์ ๋งํฌ ๋ฌธ์ ์ค๋ช ๋ก๋ด๊ฐ๋ฐ์ ๋ฌด์ง๋ ํ ๋ฌ ์์ผ๋ก ๋ค๊ฐ์จ ์นด์นด์ค๋ฐฐ ๋ก๋ด๊ฒฝ์ง๋ํ์ ์ถํํ ๋ก๋ด์ ์ค๋นํ๊ณ ์์ต๋๋ค. ์ค๋น ์ค์ธ ๋ก๋ด์ 2 x 1 ํฌ๊ธฐ์ ๋ก๋ด์ผ๋ก ๋ฌด์ง๋ 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ง N x N ํฌ๊ธฐ์ ์ง๋์์ 2 x 1 ํฌ๊ธฐ์ธ ๋ก๋ด์ ์์ง์ฌ (N, N) ์์น๊น์ง ์ด๋ ํ ์ ์๋๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ก๋ด์ด ์ด๋ํ๋ ์ง๋๋ ๊ฐ์ฅ ์ผ์ชฝ, ์๋จ์ ์ขํ๋ฅผ (1, 1)๋ก ํ๋ฉฐ ์ง๋ ๋ด์ ํ์๋ ์ซ์ 0์ ๋น์นธ์ 1์ ๋ฒฝ์ ๋ํ๋ ๋๋ค. ๋ก๋ด์ ๋ฒฝ์ด ์๋ ์นธ ๋๋ ์ง๋ ๋ฐ์ผ๋ก๋ ์ด๋ํ ์ ์์ต๋๋ค. ๋ก๋ด์ ์ฒ์์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ขํ (1, 1) ์์น์์ ๊ฐ๋ก๋ฐฉํฅ์ผ๋ก ๋์ฌ์๋ ์ํ๋ก ์์ํ๋ฉฐ, ์๋ค ๊ตฌ๋ถ์์ด ์์ง์ผ ์ ์์ต๋๋ค. ๋ก๋ด์ด ์..
์ฌํ๊ฒฝ๋ก ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/43164 ๋ฌธ์ ์ค๋ช ์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ด์ฉํ์ฌ ์ฌํ๊ฒฝ๋ก๋ฅผ ์ง๋ ค๊ณ ํฉ๋๋ค. ํญ์ ICN ๊ณตํญ์์ ์ถ๋ฐํฉ๋๋ค. ํญ๊ณต๊ถ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด tickets๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ฐฉ๋ฌธํ๋ ๊ณตํญ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๋ชจ๋ ๊ณตํญ์ ์ํ๋ฒณ ๋๋ฌธ์ 3๊ธ์๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ฃผ์ด์ง ๊ณตํญ ์๋ 3๊ฐ ์ด์ 10,000๊ฐ ์ดํ์ ๋๋ค. tickets์ ๊ฐ ํ [a, b]๋ a ๊ณตํญ์์ b ๊ณตํญ์ผ๋ก ๊ฐ๋ ํญ๊ณต๊ถ์ด ์๋ค๋ ์๋ฏธ์ ๋๋ค. ์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ง์ผ ๊ฐ๋ฅํ ๊ฒฝ๋ก๊ฐ 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ์ํ๋ฒณ ์์๊ฐ ์์๋ ๊ฒฝ๋ก๋ฅผ return ํฉ..
ํ๊ฒ ๋๋ฒ ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/43165 ๋ฌธ์ ์ค๋ช n๊ฐ์ ์์ด ์๋ ์ ์๊ฐ ์์ต๋๋ค. ์ด ์๋ฅผ ์ ์ ํ ๋ํ๊ฑฐ๋ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด [1, 1, 1, 1, 1]๋ก ์ซ์ 3์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋ค์ฏ ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 ์ฌ์ฉํ ์ ์๋ ์ซ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers, ํ๊ฒ ๋๋ฒ target์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์ซ์๋ฅผ ์ ์ ํ ๋ํ๊ณ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ์ฃผ์ด์ง๋ ์ซ์์ ๊ฐ์๋ 2๊ฐ ์ด์ ..
๊ทธ๋ํ ํ์ ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ๊ธฐ๋ฒ์๋ ๋ํ์ ์ผ๋ก 2๊ฐ์ง๊ฐ ์๋ค. ๋๋น ์ฐ์ ํ์์ธ BFS(Breadth-First Search)์ ๊น์ด ์ฐ์ ํ์์ธ DFS(Depth-First Search)์ด๋ค. BFS BFS๋ ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค. ์ค๋ช ํธ๋ฆฌ๋ก ์๋ฅผ ๋ค์์ง๋ง, ๋ชจ๋ ๊ทธ๋ํ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์ํ๋ค. ๋ฃจํธ ๋ ธ๋๋ฅผ queue์ ๋ฃ๋๋ค. queue์ ๋ ธ๋๋ฅผ ํ๋ ๊บผ๋ธ ํ, ํด๋น ๋ ธ๋์์ ์ธ์ ๋ ธ๋๋ฅผ ๋ชจ๋ queue์ ๋ฃ๋๋ค. ์์ ๋ฐฉ์์ ๋ชจ๋ ๋ ธ๋๊ฐ ์๋ฃ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค. stack์ ๋ค์ด๊ฐ ์์๋ฅผ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 1=>2=>3=>4=>5=>6=>7=>8 ๋ฐ๋ผ์ ํธ๋ฆฌ์์ BFS๋ฅผ ์คํํ์ฌ ํ์์ ํ๋ ๊ฒ์ ๋ ๋ฒจ ์ํ๋ฅผ ํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. DFS DFS๋ ์คํ์ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค. ์ค๋ช ํธ๋ฆฌ๋ก ์๋ฅผ ๋ค..
์ฌ๊ทํธ์ถ ์ฌ๊ทํจ์๋ ํจ์ ๋ด์์ ์๊ธฐ ์์ ์ ๋ค์ ํธ์ถํ๋ ํจ์์ด๋ค. ํ๋ก๊ทธ๋๋ฐํ ๋ ๋ฐ๋ณต๋๋ ์์ ๋ค์ด ๋ํด์๋ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํด์ ํํํ๋ค. ๊ธฐ์ ์ฌ๋ก๋ ๋ ์ด์ ์ชผ๊ฐ์ง์ง ์๋ ๊ฐ์ฅ ์์ ์์ ์ผ๋ก, ์ด์ ๋๋ฌํ์ ๋๋ ์ฌ๊ทํธ์ถ์ ๋ฉ์ถ๊ณ ๋ต์ ๊ณง์ฅ ๋ฐํํด์ผํ๋ค. ๊ธฐ์ ์ฌ๋ก๋ฅผ ์ ํ ๋๋ ๋ชจ๋ ์ฌ๋ก์ ๋ต์ด ๊ธฐ์ ์ฌ๋ก๋ฅผ ์ด์ฉํ์ฌ ๊ณ์ฐ๋ ์ ์๋๋ก ํด์ผํ๋ค. ์์ ํ์ (== Brute Force, Exhaustive search) ์์ ํ์์ ์ปดํจํฐ์ ์ฐ์ฐ๋ฅ๋ ฅ์ ์ด์ฉํ์ฌ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๋์ดํ๋ฉด์ ๋ต์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ ๋ ฅ์ ํฌ๊ธฐ๊ฐ ์์ ๋ ์ ์ ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ฉฐ ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ๊ธฐ๋ฐ์ด ๋๋ค. ๋ต์ ๋ฌด์กฐ๊ฑด ์ฐพ์ ์ ์๋ค๋ ์ฅ์ ์ด ์์ง๋ง, ์ฐพ๋๋ฐ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ ๋จ์ ์ด ์๋ค..
ํธ๋ฆฌ ์ฉ๋ ์ฉ์ด ์ ๋ฆฌ ์ข ๋ฅ ์ด์ง ํธ๋ฆฌ ์ผ๋ฐ ํธ๋ฆฌ ์ค๋ ๋ ์ด์ง ํธ๋ฆฌ ๊ตฌํ ๋ฐฐ์ด ํํ๋ฒ ์ฐ๊ฒฐ๋ฆฌ์คํธ ํํ๋ฒ ํธ๋ฆฌ ํ์ฉ ํ์ ์งํฉ ํํ ํํ๋ง ์ฝ๋ ํธ๋ฆฌ ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ํ ์ข ๋ฅ๋ก ๋ฌด๋ฐฉํฅ ์ฐ๊ฒฐ ๋น์ํ ๊ทธ๋ํ(Connected Undirected Acyclic Graph)์ด๋ค. ๋ฃจํธ ๋ ธ๋๊ฐ ์กด์ฌํ๊ณ , ๋ฃจํธ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋์ in-degree๊ฐ 1์ธ ๋ฐฉํฅ๊ทธ๋ํ๋ผ๊ณ ๋งํ ์๋ ์๋ค. ๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ ๊ทธ๋ํ์ ํ ์ข ๋ฅ์ด๋ฏ๋ก ๋น์ ํ ์๋ฃ๊ตฌ์กฐ์ ์ํ๋ค. ์ฉ๋ ๊ณ์ธต์ ์ธ ์กฐ์ง์ ํํํ๊ธฐ ์ํด ์ฌ์ฉ๋๊ฑฐ๋, ์ปดํจํฐ์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ / ์ธ๊ณต์ง๋ฅ์ decision tree ๋ฑ์ ์ด์ฉ๋๋ค. ๋ํ ์๋ฃ์ ํ์ / ์ ๋ ฌ / DB ๊ตฌ์ฑ์ด๋ ๋ถ์๊ตฌ์กฐ์ ์ค๊ณ ๋ฑ์์๋ ๋ค์ํ๊ฒ ์ด์ฉ๋๋ค. (๊ฒฐ์ ํธ๋ฆฌ)(์ด์งํ์) ์ฉ์ด ์ ๋ฆฌ ๋ ธ๋ ..
Comment