
Day 01 ๐ ์ค๋ ์ฝ์ ๋ฒ์ : ์์ ~ ์ถ์ฒ์ฌ & ๋ค์ด๊ฐ๋ฉด์ ๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ ๊ผญ ๋ง๊ฒ ๋ซํ์ง ์๋ ๋ฌธ์ด๋ ๋น๋ค์ด์ง ๋ฐ๋ฅ ํ์ผ์ด๋ ์ง์ ๋ถํ ์ฑ ์ ๋ฑ ์์ฃผ ์ฌ์ํ ๊ฒ๋ค์ด ์ ์ฒด์ ๋งค๋ ฅ์ ๊น์๋จน๊ธฐ ๋๋ฌธ์ด๋ค. ๊นจ๋ํ ์ฝ๋๊ฐ ์ค์ํ ์ด์ ๋ ๋ฐ๋ก ์ฌ๊ธฐ์ ์๋ค. (p.xxii) ์ฝ๋์ ์ ์งํ๊ณ , ์ฝ๋์ ์ํ์ ๊ดํ์ฌ ๋๋ฃ๋ค์๊ฒ ์ ์งํ๊ณ , ๋ฌด์๋ณด๋ค๋, ์๊ธฐ ์ฝ๋์ ๋ํด์ ์์ ์๊ฒ ์ ์งํ๋ผ๋ ๋ป์ด๋ค. (p.xxvvii) ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ธฐ ์ด๋ ต๋ค. ๋จ์ํ ์์น๊ณผ ํจํด์ ์๋ค๊ณ ๊นจ๋ํ ์ฝ๋๊ฐ ๋์ค์ง ์๋๋ค. ๊ณ ์์ ํด์ผ ํ๋ค. ์ค์ค๋ก ์ฐ์ตํ๊ณ ์คํจ๋ ๋ง๋ด์ผ ํ๋ค. ๋จ๋ค์ด ์๋ํ๋ค ์คํจํ๋ ๋ชจ์ต๋ ๋ด์ผ ํ๋ค. ๊ทธ๋ค์ด ๋์ด์ง๊ณ ์ผ์ด์๋ ๋ชจ์ต๋ ๋ด์ผ ํ๋ค. ๊ฒฐ์ ์ ๋ด๋ฆฌ๋๋ผ ๊ณ ๋ฏผํ๋ ๋ชจ์ต, ์..

์ธ์ ๊ฐ ์ฝ์ด ๋ด์ผ์ง ํ๋ ์๊ฐ์ ๊ฐ๊ณ ๋ง์ ์๊ฐ์ด ์ง๋ฌ๋๋ฐ, ์ด๋ฒ ๋ ธ๋ง๋ ์ฝ๋ ๋ถํด๋ฝ์ด ์์ํ๋คํด์ ๊พธ์คํ ์ฑ ์ฝ๋ ์ต๊ด๋ ๋ค์ด๊ณ ํผ์ ์ฝ๋ ๊ฒ ๋ณด๋ค ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ๊ฐ์ด ๊ฐ์ํ๋ ๊ณต์ ํ๋ฉด์ ์ฝ์ผ๋ฉด ์ฑ ์ ๋ค ์ฝ๊ณ ๋ ๋ค์ ํจ๊ณผ๊ฐ ์ ๋ง ์ข์ ๊ฑฐ ๊ฐ์์ ์์ ํ ๋ด ๊ฒ์ผ๋ก ๋ง๋ ๋ค๋ ๋ชฉํ๋ก ์ฑ ๋ ๊ตฌ์ ํ๊ณ ๋ถํด๋ฝ๋ ์ ์ฒญํด ๋ณธ๋ค! #๋ ธ๊ฐ๋ถ #๋ ธ๋ง๋์ฝ๋ #๋ถํด๋ฝ #ํด๋ฆฐ์ฝ๋

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)๋ก ๋ฐฑ์ค 1966๋ฒ ๋ฌธ์ ์ธ ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ 'ํ๋ฆฐํฐ ํ' ๋ฌธ์ ๋ฅผ ํ์ดํด๋ณด๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ โ์์๋๋กโ, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์ ์์ฌ์ FIFO - First In First Out - ์ ๋ฐ๋ผ ์ธ์๊ฐ ๋๊ฒ ๋๋ค. ํ์ง๋ง ์๊ทผ์ด๋ ์๋ก์ด ํ๋ฆฐํฐ๊ธฐ ๋ด๋ถ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ์๋๋ฐ, ์ด ํ๋ฆฐํฐ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ธ์๋ฅผ ํ๊ฒ ๋๋ค. 1. ํ์ฌ Queue์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์์ โ์ค์๋โ๋ฅผ ํ์ธํ๋ค. 2. ๋๋จธ์ง ๋ฌธ์๋ค ์ค ํ์ฌ ๋ฌธ์๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ๋๋ผ๋ ์๋ค๋ฉด, ์ด ๋ฌธ์๋ฅผ ์ธ์ํ์ง ์..

๐ ๋ค์ด๊ฐ๋ฉฐ DFS ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋จธ์ค '๋คํธ์ํฌ' ๋ฌธ์ ํ์ด๋ฅผ ํด๋ณด๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ๋คํธ์ํฌ๋ ์ปดํจํฐ ์ํธ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ตํํ ์ ์๋๋ก ์ฐ๊ฒฐ๋ ํํ๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํฐ A์ ์ปดํจํฐ B๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด์๊ณ , ์ปดํจํฐ B์ ์ปดํจํฐ C๊ฐ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ ๋ ์ปดํจํฐ A์ ์ปดํจํฐ C๋ ๊ฐ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์ ๋ณด๋ฅผ ๊ตํํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ปดํจํฐ A, B, C๋ ๋ชจ๋ ๊ฐ์ ๋คํธ์ํฌ ์์ ์๋ค๊ณ ํ ์ ์์ต๋๋ค. ์ปดํจํฐ์ ๊ฐ์ n, ์ฐ๊ฒฐ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด computers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋คํธ์ํฌ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์์ค. ์ ํ ์ฌํญ ์ปดํจํฐ์ ๊ฐ์ n์ 1 ์ด์ 200 ์ดํ์ธ ์์ฐ์์ ๋๋ค. ๊ฐ ์ปดํจํฐ๋ ..

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)๋ก ๋ฐฑ์ค 1931๋ฒ ๋ฌธ์ ์ธ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ 'ํ์์ค ๋ฐฐ์ ' ๋ฌธ์ ๋ฅผ ํ์ดํด๋ณด๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ํ ๊ฐ์ ํ์์ค์ด ์๋๋ฐ ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ๋ N๊ฐ์ ํ์์ ๋ํ์ฌ ํ์์ค ์ฌ์ฉํ๋ฅผ ๋ง๋ค๋ ค๊ณ ํ๋ค. ๊ฐ ํ์ I์ ๋ํด ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ์ฃผ์ด์ ธ ์๊ณ , ๊ฐ ํ์๊ฐ ๊ฒน์น์ง ์๊ฒ ํ๋ฉด์ ํ์์ค์ ์ฌ์ฉํ ์ ์๋ ํ์์ ์ต๋ ๊ฐ์๋ฅผ ์ฐพ์๋ณด์. ๋จ, ํ์๋ ํ๋ฒ ์์ํ๋ฉด ์ค๊ฐ์ ์ค๋จ๋ ์ ์์ผ๋ฉฐ ํ ํ์๊ฐ ๋๋๋ ๊ฒ๊ณผ ๋์์ ๋ค์ ํ์๊ฐ ์์๋ ์ ์๋ค. ํ์์ ์์์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ๊ฐ์ ์๋ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ ์์ํ์๋ง์ ๋๋๋ ๊ฒ์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ํ์์ ์ N(1 โค N โค 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N+1 ์ค๊น์ง ..

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ(nodejs)๋ก ๋ฐฑ์ค 1316๋ฒ ๋ฌธ์ ์ธ '๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค' ๋ฌธ์ ๋ฅผ ํ์ดํด๋ณด๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ๊ทธ๋ฃน ๋จ์ด๋ ๋จ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์์ ๋ํด์, ๊ฐ ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋ํ๋๋ ๊ฒฝ์ฐ๋ง์ ๋งํ๋ค. ์๋ฅผ ๋ค๋ฉด, ccazzzzbb๋ c, a, z, b๊ฐ ๋ชจ๋ ์ฐ์ํด์ ๋ํ๋๊ณ , kin๋ k, i, n์ด ์ฐ์ํด์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน ๋จ์ด์ด์ง๋ง, aabbbccb๋ b๊ฐ ๋จ์ด์ ธ์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน ๋จ์ด๊ฐ ์๋๋ค. ๋จ์ด N๊ฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ทธ๋ฃน ๋จ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ๋ค์ด์จ๋ค. N์ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋จ์ด๊ฐ ๋ค์ด์จ๋ค. ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ๋์ด์๊ณ ์ค๋ณต๋์ง ์์ผ๋ฉฐ, ๊ธธ์ด๋ ์ต๋ 1..

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์คํ(Stack) ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ํ๋ก๊ทธ๋๋จธ์ค 'ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ' ์นด์นด์ค ๊ธฐ์ถ๋ฌธ์ ํ์ด๋ฅผ ํ๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ๊ฒ์๊ฐ๋ฐ์์ธ "์ฃ ๋ฅด๋"๋ ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ธฐ๊ณ๋ฅผ ๋ชจ๋ฐ์ผ ๊ฒ์์ผ๋ก ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. "์ฃ ๋ฅด๋"๋ ๊ฒ์์ ์ฌ๋ฏธ๋ฅผ ๋์ด๊ธฐ ์ํด ํ๋ฉด ๊ตฌ์ฑ๊ณผ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ด ๊ฒ์ ๋ก์ง์ ๋ฐ์ํ๋ ค๊ณ ํฉ๋๋ค. ๊ฒ์ ํ๋ฉด์ "1 x 1" ํฌ๊ธฐ์ ์นธ๋ค๋ก ์ด๋ฃจ์ด์ง "N x N" ํฌ๊ธฐ์ ์ ์ฌ๊ฐ ๊ฒฉ์์ด๋ฉฐ ์์ชฝ์๋ ํฌ๋ ์ธ์ด ์๊ณ ์ค๋ฅธ์ชฝ์๋ ๋ฐ๊ตฌ๋๊ฐ ์์ต๋๋ค. (์ ๊ทธ๋ฆผ์ "5 x 5" ํฌ๊ธฐ์ ์์์ ๋๋ค). ๊ฐ ๊ฒฉ์ ์นธ์๋ ๋ค์ํ ์ธํ์ด ๋ค์ด ์์ผ๋ฉฐ ์ธํ์ด ์๋ ์นธ์ ๋น์นธ์ ๋๋ค. ๋ชจ๋ ์ธํ์ "1 x 1" ํฌ๊ธฐ์ ๊ฒฉ์ ํ ์นธ์ ์ฐจ์งํ๋ฉฐ ๊ฒฉ์์ ๊ฐ์ฅ ์๋ ์นธ๋ถํฐ ์ฐจ๊ณก์ฐจ๊ณก ์์ฌ ์์ต๋๋ค. ๊ฒ์ ์ฌ..

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ๋ก๊ทธ๋๋จธ์ค์ ์คํ(Stack) ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ '๊ธฐ๋ฅ๊ฐ๋ฐ' ๋ฌธ์ (LV.2) ํ์ด๋ฅผ ํ๊ฒ ๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100% ์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค. ๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์ ์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด speeds๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ ๋ฐฐํฌ๋ง๋ค ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์. ์ ํ์ฌํญ ์์ ์ ๊ฐ์(prog..

๐ ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ํ๋ก๊ทธ๋๋จธ์ค์ ํด์ฌ(Hash) ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ๋ '์์ฃผํ์ง ๋ชปํ ์ ์' ๋ฌธ์ ํ์ด๋ฅผ ํ๊ฒ ๋ค. ํด๋น ๋ฌธ์ ๋ ํด์ฌ(Hash)๋ฅผ ํ์ฉํ์ง ์๊ณ ๋ ํ ์ ์์์ง๋ง, ํ๋ก๊ทธ๋๋จธ์ค์์ ํด์ฌ(Hash) ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด๋ก ๋ถ๋ฅ๋ฅผ ํด๋์๊ธฐ ๋๋ฌธ์ ํด์ฌ(Hash) ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค. โ ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด completion์ด ์ฃผ์ด์ง ๋, ์์ฃผํ์ง ๋ชปํ ์ ์์ ์ด๋ฆ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๋ง๋ผํค ๊ฒฝ๊ธฐ์ ์ฐธ์ฌํ ์ ์์ ์๋..