๐ ํ๋ก๊ทธ๋๋จธ์ค / Level2 / ํธํ
๋์ค ๐ ๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๐ซ ์ ํ ์ฌํญ 1 ≤ book_time์ ๊ธธ์ด ≤ 1,000 book_time[i]๋ ["HH:MM", "HH:MM"]์ ํํ๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์
๋๋ค [๋์ค ์์ ์๊ฐ, ๋์ค ์ข
๋ฃ ์๊ฐ] ํํ์
๋๋ค. ์๊ฐ์ HH:MM ํํ๋ก 24์๊ฐ ํ๊ธฐ๋ฒ์ ๋ฐ๋ฅด๋ฉฐ, "00:00" ๋ถํฐ "23:59" ๊น์ง๋ก ์ฃผ์ด์ง๋๋ค. ์์ฝ ์๊ฐ์ด ์์ ์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค. ์์ ์๊ฐ์ ํญ์ ์ข
๋ฃ ์๊ฐ๋ณด๋ค ๋น ๋ฆ
๋๋ค. ๐ ์
์ถ๋ ฅ ์ ๐ค ํ์ด ๋ฐฉ๋ฒ 1๏ธโฃ ์์ด๋์ด โก๏ธ ๋์ค ์์ ์๊ฐ..
Algorithm ๐ค
๐ ํ๋ก๊ทธ๋๋จธ์ค / Level3 / ์ฌ ์ฐ๊ฒฐํ๊ธฐ ๐ ๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๐ซ ์ ํ ์ฌํญ ์ฌ์ ๊ฐ์ n์ 1 ์ด์ 100 ์ดํ์
๋๋ค. costs์ ๊ธธ์ด๋ ((n-1) * n) / 2์ดํ์
๋๋ค. ์์์ i์ ๋ํด, costs[i][0] ์ costs[i] [1]์๋ ๋ค๋ฆฌ๊ฐ ์ฐ๊ฒฐ๋๋ ๋ ์ฌ์ ๋ฒํธ๊ฐ ๋ค์ด์๊ณ , costs[i] [2]์๋ ์ด ๋ ์ฌ์ ์ฐ๊ฒฐํ๋ ๋ค๋ฆฌ๋ฅผ ๊ฑด์คํ ๋ ๋๋ ๋น์ฉ์
๋๋ค. ๊ฐ์ ์ฐ๊ฒฐ์ ๋ ๋ฒ ์ฃผ์ด์ง์ง ์์ต๋๋ค. ๋ํ ์์๊ฐ ๋ฐ๋๋๋ผ๋ ๊ฐ์ ์ฐ๊ฒฐ๋ก ๋ด
๋๋ค. ์ฆ 0๊ณผ 1 ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ๋น์ฉ์ด ์ฃผ์ด์ก์ ๋, 1๊ณผ ..
๐ ํ๋ก๊ทธ๋๋จธ์ค / Level2 / ํ๋
ธ์ด์ ํ ๐ ๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์
๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์
๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๐ซ ์ ํ ์ฌํญ n์ 15์ดํ์ ์์ฐ์์
๋๋ค. ๐ ์
์ถ๋ ฅ ์ n result 2 [ [1,2], [1,3], [2,3] ] ๐ค ํ์ด ๋ฐฉ๋ฒ 1๏ธโฃ ํ ์ด๋ ๊ท์น ํ์
ํ๊ธฐ โก๏ธ ํ์ ์ด๋์ํค๋ ๊ณผ์ ์ ์๋ 3๋จ๊ณ๋ก ๋๋์ด๋ณด์๋ค. โ ๊ฐ์ฅ ํฐ ์ํ ์ธ ๋๋จธ์ง๋ฅผ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฎ๊ธด๋ค. โก ๊ฐ์ฅ ํฐ ์ํ์ 3๋ฒ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธด๋ค. โข ๊ณผ์ โ ์์ ์ฎ๊ฒจ๋์๋ ์ํ๋ค์ 3๋ฒ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธด๋ค. โก๏ธ ๋ ๋ช๊ฐ๋ฅผ ๋์ดํด๋ณด๋ ์๊ตฌ๋๋ ์ด๋ ์๊ฐ 2์ n์ ๊ณฑ ๋ฑ๋น์์ด์ ํฉ ํ..
โ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐ โก๏ธ ๋ค์ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ์ฃผ์ ์ธ ์ด๋ถ ํ์์ ๋ํด์ ์์ต โ๏ธ๊ณต๋ถํ ๋ด์ฉ 1๏ธโฃ ์ด๋ถํ์์ด๋? โก๏ธ ์์ฐจ์ ํ์๊ณผ ๋น๊ตํด๋ณด๋ฉด ์ ํํ ์ ์ ์๋ค. โ ์์ฐจ์ ํ์ (Sequential Search) โก๏ธ ์ฒ์๋ถํฐ ํ๋ํ๋์ฉ ๋น๊ตํด๊ฐ๋ฉฐ ๋๊น์ง ํ์ํ๋ ๊ฒ์ด๋ค. ์ต์
์ ๊ฒฝ์ฐ ๋ง์ง๋ง ๋ฐ์ดํฐ ๊น์ง ํ์ํ๋ฏ๋ก O(n) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. โก ์ด๋ถ ํ์ (Binary Search) โก๏ธ mid ๊ฐ์ ๊ตฌํด์ ๊ณ์ํด์ ํ์ ๋ฒ์๋ฅผ ๋ฐ์ฉ ์ค์ฌ๋๊ฐ๋ฉฐ ํ์ํ๋ ๊ฒ์ด๋ค. ์ต์
์ ๊ฒฝ์ฐ Tree ๊ตฌ์กฐ์์ ๋ง์ง๋ง leaf ๊ฐ๊น์ง ๋ด๋ ค๊ฐ์ผ๋ก O(logN) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. 2๏ธโฃ ์ด๋ถํ์ ๊ณผ์ โ ์ฒ์ ๋ฒ์๋ index 0 ์์ ๋๊น์ง ์ด๋ค. ์ด ๋์ mid = ๋ฐฐ์ด์ ๊ธธ์ด / 2 โก..
โ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐ โก๏ธ ๋ค์ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ์ฃผ์ ์ธ Graph ์ ๋ํด์ ์์ต โ๏ธ๊ณต๋ถํ ๋ด์ฉ 1๏ธโฃ ๊ทธ๋ํ๋? โ ์ ์ โก๏ธ ์ ์ (Vertex) ์ ๊ทธ ์ฌ์ด๋ฅผ ์๋ ๊ฐ์ (Edge) ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ. โ๏ธ ์ ์ G = (V,E) : ์ ์ ์ ์งํฉ V ์ ๊ฐ์ ์ ์งํฉ E ๋ก ์ด๋ฃจ์ด์ง ๊ตฌ์กฐ๋ฅผ ์๋ฏธ V(G) : ๊ทธ๋ํ G ์์์์ ์ ์ ์ ์งํฉ E(G) : ๊ทธ๋ํ G ์์์์ ๊ฐ์ ์ ์งํฉ โก ์์ (๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๊ธฐ์ค) โก๏ธ V(G) = {1, 2, 3, 4, 5} โก๏ธ E(G) = {(1, 2), (3, 1), (3, 2), (4, 1), (5, 2), (5, 4)} 2๏ธโฃ ๊ทธ๋ํ ์ข
๋ฅ โ ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ (Undirected Graph) โก๏ธ ๊ฐ์ ์ ๋ฐฉํฅ์ ์์ฑ์ด ์๋ ๊ทธ๋ํ์ด๋ค. ๋ ์ ์ V, W ..
โ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐ โก๏ธ ๋ค์์ฃผ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ์ฃผ์ ์ธ DP ์ ๋ํด์ ์์ต โ๏ธ๊ณต๋ถํ ๋ด์ฉ 1๏ธโฃ Dynamic Programming ์ด๋? โก๏ธ ๋์์ธ ํจ๋ฌ๋ค์ ์ค ํ๋๋ก ์กํ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. โก๏ธ Dynamic ์ '๊ธฐ์ตํ๊ธฐ' & Programming ์ '๋๋๊ธฐ' ์ ๋ ์๊ฐํ๋๊ฒ ์ข๋ค. โก๏ธ ๋์ ๊ณํ๋ฒ์ ํต์ฌ์ธ Memorization(DP ๊ตฌํ ๋ฐฉ๋ฒ ์ค ํ๋) ์ ์ด์ฉํด ๋น ๋ฅธ ์๋๋ก ์ต์ ์ ํด๋ฅผ ์ฐพ์๋ด๋ ๊ฒ์ด ๋ชฉํ์ด๋ค. 2๏ธโฃ DP ๋ฌธ์ ๊ฐ ์ฑ๋ฆฝํ ์กฐ๊ฑด โก๏ธ DP ๋ฌธ์ ๊ฐ ์ฑ๋ฆฝํ๊ธฐ ์ํด์๋ ํฌ๊ฒ 2๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํด์ผํ๋ค. โ ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ (Optional Substructure) โก๏ธ ์์ ๋ฌธ์ ๋ฅผ ํ์ ๋ฌธ์ ๋ก ๋๋ ์ ์์ผ๋ฉฐ, ํ์ ๋ฌธ์ ์ ๋ต์ ๋ชจ..