
Problem Solving ๐ฅ/ํ๋ก๊ทธ๋๋จธ์ค
[ํ๋ก๊ทธ๋๋จธ์ค] ์ธ๋ฒฝ ์ ๊ฒ / ํ์ด์ฌ
๋ฌธ์ programmers.co.kr/learn/courses/30/lessons/60062 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ธ๋ฒฝ ์ ๊ฒ ๋ ์คํ ๋์ ์ด์ํ๊ณ ์๋ ์ค์นดํผ๋ ๋ ์คํ ๋ ๋ด๋ถ๊ฐ ๋๋ฌด ๋ก์ ์น๊ตฌ๋ค๊ณผ ํจ๊ป ์ง์ ๋ฆฌ๋ชจ๋ธ๋ง ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋ ์คํ ๋์ด ์๋ ๊ณณ์ ์ค๋ ธ์ฐํ์ด์ผ๋ก ๋งค์ฐ ์ถ์ด ์ง์ญ์ด์ด์ ๋ด๋ถ ๊ณต์ฌ๋ฅผ ํ๋ programmers.co.kr ํ์ด ๊ฐ์ธ์ ์ผ๋ก ์ด๋ ค์ด ๋ฌธ์ ์๋ค. ์์ด์ ์ด์ฉํ Brute Force ๋ฌธ์ ์ด๋ค. ์นด์นด์ค ๋ฌธ์ ๋ ์ญ์ ์ด๋ ต๋ค.. ํ์ด ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค. ์ฐ์ ์์์ ์ ์ ํด์ผํ๋ค. ์์ด๋ฏ๋ก ๋ฐฐ์ด์๋ค๊ฐ n์ ๋ํ weak_point ๋ฐฐ์ด์ ์๋กญ๊ฒ ๋ง๋ค์ด์ค๋ค. ๊ทธ ๋ค์ ์์์ ์์๋ถํฐ, ๊ฐ๋ฅํ ๋ชจ๋ ์์ด(dist์ ์กฐํฉ)์ permutations()๋ฅผ ํตํด ๊ณ์ฐํ๊ณ , ๋ชจ๋ weak point๋ฅผ..
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ณผ ๋ณด ์ค์น / ํ์ด์ฌ / (์งํฉ)
๋ฌธ์ ์ค๋ช programmers.co.kr/learn/courses/30/lessons/60061 ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธฐ๋ฅ๊ณผ ๋ณด ์ค์น 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr ํ์ด ๊ฐ์ธ์ ์ผ๋ก๋ ์ด๋ ค์ด ๋ฌธ์ ์๋ค. ์ฒ์์ 2์ฐจ์ ๋ฐฐ์ด๋ก ํธ๋ ค๋ค๊ฐ, ๊ตฌํ์ด ๋๋ฌด๋ ์ด๋ ค..
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ๋จผ ๋ ธ๋ / ํ์ด์ฌ
๋ฌธ์ ์ค๋ช ๊ฐ์ฅ ๋จผ ๋ ธ๋ n๊ฐ์ ๋ ธ๋๊ฐ ์๋ ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ๊ฐ ๋ ธ๋๋ 1๋ถํฐ n๊น์ง ๋ฒํธ๊ฐ ์ ํ์์ต๋๋ค. 1๋ฒ ๋ ธ๋์์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋๋ ์ต๋จ๊ฒฝ๋ก๋ก ์ด๋ํ์ ๋ ๊ฐ์ ์ ๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง์ ๋ ธ๋๋ค์ ์๋ฏธํฉ๋๋ค. ๋ ธ๋์ ๊ฐ์ n, ๊ฐ์ ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด vertex๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, 1๋ฒ ๋ ธ๋๋ก๋ถํฐ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋ ธ๋๊ฐ ๋ช ๊ฐ์ธ์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๋ ธ๋์ ๊ฐ์ n์ 2 ์ด์ 20,000 ์ดํ์ ๋๋ค. ๊ฐ์ ์ ์๋ฐฉํฅ์ด๋ฉฐ ์ด 1๊ฐ ์ด์ 50,000๊ฐ ์ดํ์ ๊ฐ์ ์ด ์์ต๋๋ค. vertex ๋ฐฐ์ด ๊ฐ ํ [a, b]๋ a๋ฒ ๋ ธ๋์ b๋ฒ ๋ ธ๋ ์ฌ์ด์ ๊ฐ์ ์ด ์๋ค๋ ์๋ฏธ์ ๋๋ค. ์ ์ถ๋ ฅ ์..
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ / ํ์ด์ฌ
๋ฌธ์ ์ค๋ช ์์ n๋ช ์ ๊ถํฌ์ ์๊ฐ ๊ถํฌ ๋ํ์ ์ฐธ์ฌํ๊ณ ๊ฐ๊ฐ 1๋ฒ๋ถํฐ n๋ฒ๊น์ง ๋ฒํธ๋ฅผ ๋ฐ์์ต๋๋ค. ๊ถํฌ ๊ฒฝ๊ธฐ๋ 1๋1 ๋ฐฉ์์ผ๋ก ์งํ์ด ๋๊ณ , ๋ง์ฝ A ์ ์๊ฐ B ์ ์๋ณด๋ค ์ค๋ ฅ์ด ์ข๋ค๋ฉด A ์ ์๋ B ์ ์๋ฅผ ํญ์ ์ด๊น๋๋ค. ์ฌํ์ ์ฃผ์ด์ง ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๊ณ ์ ์๋ค์ ์์๋ฅผ ๋งค๊ธฐ๋ ค ํฉ๋๋ค. ํ์ง๋ง ๋ช๋ช ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์คํ์ฌ ์ ํํ๊ฒ ์์๋ฅผ ๋งค๊ธธ ์ ์์ต๋๋ค. ์ ์์ ์ n, ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ 2์ฐจ์ ๋ฐฐ์ด results๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์ ํํ๊ฒ ์์๋ฅผ ๋งค๊ธธ ์ ์๋ ์ ์์ ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ์ ์์ ์๋ 1๋ช ์ด์ 100๋ช ์ดํ์ ๋๋ค. ๊ฒฝ๊ธฐ ๊ฒฐ๊ณผ๋ 1๊ฐ ์ด์ 4,500๊ฐ ์ดํ์ ๋๋ค. results ๋ฐฐ์ด ๊ฐ ํ [A, B]๋ A ์ ์๊ฐ B ์ ์๋ฅผ ์ด๊ฒผ๋ค..
[ํ๋ก๊ทธ๋๋จธ์ค] ์ถ์ ํธ๋ํฝ / ํ์ด์ฌ
๋ฌธ์ ์ค๋ช ์ถ์ ํธ๋ํฝ ์ด๋ฒ ์ถ์์๋ ์์คํ ์ฅ์ ๊ฐ ์๋ ๋ช ์ ์ ๋ณด๋ด๊ณ ์ถ์ ์ดํผ์น๋ ์๋ฒ๋ฅผ ์ฆ์คํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด๋ค. ์ฅ์ ๋๋น์ฉ ์๋ฒ ์ฆ์ค ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์๋ ์ถ์ ๊ธฐ๊ฐ์ธ 9์ 15์ผ ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ ํ ์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ ๊ณ์ฐํด๋ณด๊ธฐ๋ก ํ๋ค.์ด๋น ์ต๋ ์ฒ๋ฆฌ๋์ ์์ฒญ์ ์๋ต ์๋ฃ ์ฌ๋ถ์ ๊ด๊ณ์์ด ์์ ์๊ฐ๋ถํฐ 1์ด(=1,000๋ฐ๋ฆฌ์ด)๊ฐ ์ฒ๋ฆฌํ๋ ์์ฒญ์ ์ต๋ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค. ์ ๋ ฅ ํ์ solutionํจ์์ ์ ๋ฌ๋๋lines๋ฐฐ์ด์N(1 โฆNโฆ 2,000)๊ฐ์ ๋ก๊ทธ ๋ฌธ์์ด๋ก ๋์ด ์์ผ๋ฉฐ, ๊ฐ ๋ก๊ทธ ๋ฌธ์์ด๋ง๋ค ์์ฒญ์ ๋ํ ์๋ต์๋ฃ์๊ฐS์ ์ฒ๋ฆฌ์๊ฐT๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์๋ค. ์๋ต์๋ฃ์๊ฐS๋ ์๋ ์ถ์์ธ 2016๋ 9์ 15์ผ๋ง ํฌํจํ์ฌ ๊ณ ์ ๊ธธ์ด2016-09-15 hh:mm:ss.sssํ์์ผ๋ก ๋..
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ ํฐ๋จ๋ฆฌ๊ธฐ / ํ์ด์ฌ / (์ต์, ์ต๋, ํ)
๋ฌธ์ ์ค๋ช ํ์ ํฐํธ๋ฆฌ๊ธฐ ๋ฌธ์ ์ค๋ช ์ผ๋ ฌ๋ก ๋์ด๋ n๊ฐ์ ํ์ ์ด ์์ต๋๋ค. ๋ชจ๋ ํ์ ์๋ ์๋ก ๋ค๋ฅธ ์ซ์๊ฐ ์จ์ ธ ์์ต๋๋ค. ๋น์ ์ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉด์ ํ์ ๋ค์ ๋จ 1๊ฐ๋ง ๋จ์ ๋๊น์ง ๊ณ์ ํฐํธ๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ์์์์ธ์ ํ๋ ํ์ ์ ๊ณ ๋ฅธ ๋ค, ๋ ํ์ ์ค ํ๋๋ฅผ ํฐํธ๋ฆฝ๋๋ค. ํฐ์ง ํ์ ์ผ๋ก ์ธํด ํ์ ๋ค ์ฌ์ด์ ๋น ๊ณต๊ฐ์ด ์๊ฒผ๋ค๋ฉด, ๋น ๊ณต๊ฐ์ด ์๋๋ก ํ์ ๋ค์ ์ค์์ผ๋ก ๋ฐ์ฐฉ์ํต๋๋ค. ์ฌ๊ธฐ์ ์กฐ๊ฑด์ด ์์ต๋๋ค. ์ธ์ ํ ๋ ํ์ ์ค์์๋ฒํธ๊ฐ ๋ ์์ ํ์ ์ ํฐํธ๋ฆฌ๋ ํ์๋ ์ต๋ 1๋ฒ๋ง ํ ์ ์์ต๋๋ค. ์ฆ, ์ด๋ค ์์ ์์ ์ธ์ ํ ๋ ํ์ ์ค ๋ฒํธ๊ฐ ๋ ์์ ํ์ ์ ํฐํธ๋ ธ๋ค๋ฉด, ๊ทธ ์ดํ์๋ ์ธ์ ํ ๋ ํ์ ์ ๊ณ ๋ฅธ ๋ค ๋ฒํธ๊ฐ ๋ ํฐ ํ์ ๋ง์ ํฐํธ๋ฆด ์ ์์ต๋๋ค. ๋น์ ์ ์ด๋ค ํ์ ์ด ์ตํ๊น์ง ๋จ์ ์ ์๋์ง ์์๋ณด๊ณ ์ถ..
[ํ๋ก๊ทธ๋๋จธ์ค] ํ์ผ๋ช ์ ๋ ฌ / ํ์ด์ฌ
๋ฌธ์ ์ค๋ช ํ์ผ๋ช ์ ๋ ฌ ์ธ ์ฐจ๋ก์ ์ฝ๋ฉ ํ ์คํธ์ ๋ ์ฐจ๋ก์ ๋ฉด์ ์ด๋ผ๋ ๊ธฐ๋๊ธด ๋ธ๋ผ์ธ๋ ๊ณต์ฑ๋ฅผ ๋ฌด์ฌํ ํต๊ณผํด ์นด์นด์ค์ ์ ์ฌํ ๋ฌด์ง๋ ํ์ผ ์ ์ฅ์ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ๋งก๊ฒ ๋์๋ค. ์ ์ฅ์ ์๋ฒ์๋ ํ๋ก๊ทธ๋จ์ ๊ณผ๊ฑฐ ๋ฒ์ ์ ๋ชจ๋ ๋ด๊ณ ์์ด, ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌ๋ ํ์ผ ๋ชฉ๋ก์ ๋ณด๊ธฐ๊ฐ ๋ถํธํ๋ค. ํ์ผ์ ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋์ค์ ๋ง๋ค์ด์ง ver-10.zip์ด ver-9.zip๋ณด๋ค ๋จผ์ ํ์๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฒ์ ๋ฒํธ ์ธ์๋ ์ซ์๊ฐ ํฌํจ๋ ํ์ผ ๋ชฉ๋ก์ ์ฌ๋ฌ ๋ฉด์์ ๊ด๋ฆฌํ๊ธฐ ๋ถํธํ๋ค. ์์ปจ๋ ํ์ผ ๋ชฉ๋ก์ด [img12.png,img10.png,img2.png,img1.png]์ผ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ธ ์ ๋ ฌ์ [img1.png,img10.png,img12.png,img2.png] ์์ด ๋์ง๋ง, ์ซ์ ์์ผ๋ก ์ ๋ ฌ๋ [img1.png,img..
[ํ๋ก๊ทธ๋๋จธ์ค] n์ง์ ๊ฒ์ / ํ์ด์ฌ
๋ฌธ์ ์ค๋ช N์ง์ ๊ฒ์ ํ๋ธ๊ฐ ํ๋ํ๋ ์ฝ๋ฉ ๋์๋ฆฌ์์๋ ์ ํต์ ์ผ๋ก ํด์ค๋ ๊ฒ์์ด ์๋ค. ์ด ๊ฒ์์ ์ฌ๋ฌ ์ฌ๋์ด ๋ฅ๊ธ๊ฒ ์์์ ์ซ์๋ฅผ ํ๋์ฉ ์ฐจ๋ก๋๋ก ๋งํ๋ ๊ฒ์์ธ๋ฐ, ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค. ์ซ์๋ฅผ 0๋ถํฐ ์์ํด์ ์ฐจ๋ก๋๋ก ๋งํ๋ค. ์ฒซ ๋ฒ์งธ ์ฌ๋์ 0, ๋ ๋ฒ์งธ ์ฌ๋์ 1, … ์ด ๋ฒ์งธ ์ฌ๋์ 9๋ฅผ ๋งํ๋ค. 10 ์ด์์ ์ซ์๋ถํฐ๋ ํ ์๋ฆฌ์ฉ ๋์ด์ ๋งํ๋ค. ์ฆ ์ดํ ๋ฒ์งธ ์ฌ๋์ 10์ ์ฒซ ์๋ฆฌ์ธ 1, ์ด๋ ๋ฒ์งธ ์ฌ๋์ ๋์งธ ์๋ฆฌ์ธ 0์ ๋งํ๋ค. ์ด๋ ๊ฒ ๊ฒ์์ ์งํํ ๊ฒฝ์ฐ, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, … ์์ผ๋ก ์ซ์๋ฅผ ๋งํ๋ฉด ๋๋ค. ํํธ ์ฝ๋ฉ ๋์๋ฆฌ ์ผ์๋ค์ ์ปดํจํฐ๋ฅผ ๋ค๋ฃจ๋ ์ฌ๋๋ต๊ฒ ์ด์ง์๋ก ์ด ๊ฒ์์ ์งํํ๊ธฐ๋ ํ๋๋ฐ, ์ด ๊ฒฝ..
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ถ / ํ์ด์ฌ / (๋์ ๋๋ฆฌ)
๋ฌธ์ ์ค๋ช [3์ฐจ] ์์ถ ์์ถ ์ ์ ์ฌ์ ์ดํผ์น๋ ์นด์นด์คํก์ผ๋ก ์ ์ก๋๋ ๋ฉ์์ง๋ฅผ ์์ถํ์ฌ ์ ์ก ํจ์จ์ ๋์ด๋ ์ ๋ฌด๋ฅผ ๋งก๊ฒ ๋์๋ค. ๋ฉ์์ง๋ฅผ ์์ถํ๋๋ผ๋ ์ ๋ฌ๋๋ ์ ๋ณด๊ฐ ๋ฐ๋์ด์๋ ์ ๋๋ฏ๋ก, ์์ถ ์ ์ ์ ๋ณด๋ฅผ ์๋ฒฝํ๊ฒ ๋ณต์ ๊ฐ๋ฅํ ๋ฌด์์ค ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๊ธฐ๋ก ํ๋ค. ์ดํผ์น๋ ์ฌ๋ฌ ์์ถ ์๊ณ ๋ฆฌ์ฆ ์ค์์ ์ฑ๋ฅ์ด ์ข๊ณ ๊ตฌํ์ด ๊ฐ๋จํLZW(Lempel–Ziv–Welch) ์์ถ์ ๊ตฌํํ๊ธฐ๋ก ํ๋ค. LZW ์์ถ์ 1983๋ ๋ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ์ด๋ฏธ์ง ํ์ผ ํฌ๋งท์ธ GIF ๋ฑ ๋ค์ํ ์์ฉ์์ ์ฌ์ฉ๋์๋ค. LZW ์์ถ์ ๋ค์ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ๊ธธ์ด๊ฐ 1์ธ ๋ชจ๋ ๋จ์ด๋ฅผ ํฌํจํ๋๋ก ์ฌ์ ์ ์ด๊ธฐํํ๋ค. ์ฌ์ ์์ ํ์ฌ ์ ๋ ฅ๊ณผ ์ผ์นํ๋ ๊ฐ์ฅ ๊ธด ๋ฌธ์์ดw๋ฅผ ์ฐพ๋๋ค. w์ ํด๋นํ๋ ์ฌ์ ์ ์์ธ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๊ณ , ์ ๋ ฅ์์w๋ฅผ ์ ๊ฑฐ..
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ณดํค / ํ์ด์ฌ / (์งํฉ, ๋นํธ๋ง์คํฌ)
๋ฌธ์ ์ค๋ช ํ๋ณดํค ํ๋ ์ฆ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ ์กฐ๊ต์ธ ์ ์ด์ง๋ ๋ค์ค ํ๊ณผ์ฅ๋์ ์ง์๋ก, ํ์๋ค์ ์ธ์ ์ฌํญ์ ์ ๋ฆฌํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์๋ค. ๊ทธ์ ํ๋ถ ์์ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ ๋์ด๋ ค, ๋ชจ๋ ์ธ์ ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ๊ธฐ๋ก ํ์๊ณ , ์ด๋ฅผ ์ํด ์ ๋ฆฌ๋ฅผ ํ๋ ์ค์ ํ๋ณดํค(Candidate Key)์ ๋ํ ๊ณ ๋ฏผ์ด ํ์ํ๊ฒ ๋์๋ค. ํ๋ณดํค์ ๋ํ ๋ด์ฉ์ด ์ ๊ธฐ์ต๋์ง ์๋ ์ ์ด์ง๋, ์ ํํ ๋ด์ฉ์ ํ์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์ ์ ํ์ธํ์ฌ ์๋์ ๊ฐ์ ๋ด์ฉ์ ํ์ธํ์๋ค. ๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฆด๋ ์ด์ (Relation)์ ํํ(Tuple)์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ(Attribute) ๋๋ ์์ฑ์ ์งํฉ ์ค, ๋ค์ ๋ ์ฑ์ง์ ๋ง์กฑํ๋ ๊ฒ์ ํ๋ณด ํค(Candidate Key)๋ผ๊ณ ํ๋ค. ์ ์ผ์ฑ(uniqueness)..