๋ฌธ์ ๋ฒ ์คํธ ์จ๋ฒ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๋ฒ ์คํธ์จ๋ฒ ์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋ ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋ ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋ ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ํ ๋ ธ๋๊ฐ programmers.co.kr ํ์ด ์ฐ์ ์์๋ด์ผ ํ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ฅ๋ฅด์ ์ด ์ฌ์ ํ์ -> ์ฅ๋ฅด ์์ ์ ํ๊ธฐ ๊ฐ ์ฅ๋ฅด์ ๊ฐ๋ณ ๊ณก ์ฌ์ ํ์ -> ๊ณก ์์ ์ ํ๊ธฐ ์ด๊ฑธ ํ ๋ฒ์ ์์๋ด๋ ค๊ณ ํ๋ฉด ์ฅ๋ฅด๋ฅผ key๋ก ๋๊ณ ์๋ map์ value๋ก (์ด ์ฌ์ ํ์, index๋ง๋ค์ ์ฌ์ํ์)์ ์ ์ฅํด๋์ด์ผ ํ๊ณ ์ด๋ฌ๋ฉด ์ฅ๋ฅด์ ์์๋ฅผ ์์๋ด๊ธฐ ํ๋ค ๋ฟ๋ง ์๋๋ผ ๊ณก ์์๋ ์ถ์ถํด์ ๋ํ๋ด์ผ ํ๋ค. ๋ฐ๋ผ์ map์ ๋๊ฐ๋ก ๋๋์๋ค. 1๋ฒ map์ { key : ์ฅ..
๋ฌธ์ ์ ํ๋ฒํธ ๋ชฉ๋ก ๋ฌธ์ ๋ฐ๋ก ๊ฐ๊ธฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ ํ๋ฒํธ ๋ชฉ๋ก ์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค. ์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์ ๋๋ค. ๊ตฌ์กฐ programmers.co.kr ํ์ด ๋ณด์๋ง์ ํธ๋ผ์ด(Trie)๊ฐ ์๊ฐ๋ฌ๋ค. ๋ฌธ์์ด ๊ธธ์ด๋ 20 ์ดํ์ด๋ ์ต๋ ๋์ด๊ฐ 20์ธ ํธ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉด ๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ฐ๊ฒฐ๋ฆฌ์คํธ ๊ตฌํ์ด ๋๋ฌด ๊ท์ฐฎ๊ธฐ๋ ํ๊ณ , ์ ๋ ฅ์ ๋ฒ์๊ฐ 10^6์ด๋ผ O(nlgn) ์ดํ๋ก ํ ๋ฒ์ ํด๊ฒฐํ ์ ์๋ ์ฌ์ด ๋ฐฉ๋ฒ์ด ์์ง ์์๊น ์๊ฐํ๋ค. ์ ๋ ฌ๋์ด ์๋ phone_book์ ํ ๋ฒ์ ํ์ผ๋ฉด ๋ฑ์ฅํ๋ ๋ฌธ์์ด์ ํฌํจํ๊ณ ์๋ ์ง๋ฅผ ํ์ธํ๋ฉด ๋๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก ๋ฑ์ฅํ๋ ๋ชจ๋ ๋ฌธ์์ด์ ๋ค์ ์..
๋ฌธ์ ์ ํ๋ฒ์ค ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - [1์ฐจ] ์ ํ๋ฒ์ค 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr ํ์ด ์ ํ์ด ์ถ๋ฐํ๋ ์๊ฐ์ ๋ค ๊ตฌํ๋ค. ์ฌ๋๋ค์ timetable์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ๊ฐ ์ ํ์ ํ ์ ์๋ ์ฌ๋(์ ํ ์๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ฌ๋)์ ๊ตฌํ๋ค. ์ด ๋, ์ฝ์ด ํด๋น ์ ํ์ ํ ์ ์๊ธฐ ์ํ ์ตํ์ ์๊ฐ์ ๊ตฌํด๋๋๋ค. ์ตํ์ ์๊ฐ์ ์ ํ์ ์ฌ๋์ด ๊ฝ ์ฐฐ ๊ฒฝ์ฐ '๊ฐ์ฅ ํฐ ์๊ฐ - 1' ์ ํ์ ์ฌ๋์ด ๊ฝ ์ฐจ์ง..
๋ฌธ์ ๋ฌธ์ ์ค๋ช ๋๋์ด ์ด๋ ๋ง์์ ํธ ๊ณํ์ ํ๊ณ ์์ต๋๋ค. ์ด ๋ง์์ ๋ชจ๋ ์ง๋ค์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋๊ทธ๋๊ฒ ๋ฐฐ์น๋์ด ์์ต๋๋ค. ๊ฐ ์ง๋ค์ ์๋ก ์ธ์ ํ ์ง๋ค๊ณผ ๋ฐฉ๋ฒ์ฅ์น๊ฐ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ํ ๋ ์ง์ ํธ๋ฉด ๊ฒฝ๋ณด๊ฐ ์ธ๋ฆฝ๋๋ค. ๊ฐ ์ง์ ์๋ ๋์ด ๋ด๊ธด ๋ฐฐ์ด money๊ฐ ์ฃผ์ด์ง ๋, ๋๋์ด ํ์น ์ ์๋ ๋์ ์ต๋๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์. ์ ํ์ฌํญ ์ด ๋ง์์ ์๋ ์ง์ 3๊ฐ ์ด์ 1,000,000๊ฐ ์ดํ์ ๋๋ค. money ๋ฐฐ์ด์ ๊ฐ ์์๋ 0 ์ด์ 1,000 ์ดํ์ธ ์ ์์ ๋๋ค. ํ์ด ๋ง์ฝ ์์ ํ์์ผ๋ก ํ๊ณ ์ ํ๋ค๋ฉด? ๋ฐ๋ณต์ index 0๋ถํฐ n-1๊น์ง ๋๋ฉด์ ํด๋น ์ง์์ ์์ํด์ ๋ํ๋๋ ์ต๋์ money๋ฅผ ๊ตฌํ ์ ์์ ํ์ง๋ง index 2๋ฅผ ๊ณ ๋ฅธ๋ค๋ฉด, ์ง์ ๊ฐ์..
๋งค์นญ ์ ์ ๊ฑธ๋ฆฐ ์๊ฐ : 3์๊ฐ ์ด์ ๋ฌธ์ ๋์ด๋ โ โ โ โโ ๋ฌธ์ ์ค๋ช ํ๋ ์ฆ ๋ํ๊ต ์กฐ๊ต์๋ ์ ์ด์ง๋ ํ๋๋ ์ผ๋ง ์ํค๋ ๋ค์ค ํ๊ณผ์ฅ๋์ ๋ง์์์ ๋ฒ์ด๋, ์นด์นด์ค์ ์ ์ฌํ๊ฒ ๋์๋ค. ํ์์ ๊ด์ฌ์์ดํ๋ ๊ฒ์์ ๋ง์นจ ๊ฒฐ์์ด ๋ฐ์ํ์ฌ, ๊ฒ์๊ฐ๋ฐํ์ ํธ์ ๋ ์ ์์๊ณ , ๋๋ง์ ์ฒซ ํ๋ก์ ํธ๋ฅผ ๋งก๊ฒ ๋์๋ค. ๊ทธ ํ๋ก์ ํธ๋ ๊ฒ์์ด์ ๊ฐ์ฅ ์ ๋ง๋ ์นํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์๋์ ๊ฐ์ ๊ท์น์ผ๋ก ๊ฒ์์ด์ ๋ํ ์นํ์ด์ง์ ๋งค์นญ์ ์๋ฅผ ๊ณ์ฐ ํ๋ ๊ฒ์ด์๋ค. ํ ์นํ์ด์ง์ ๋ํด์ ๊ธฐ๋ณธ์ ์, ์ธ๋ถ ๋งํฌ ์, ๋งํฌ์ ์, ๊ทธ๋ฆฌ๊ณ ๋งค์นญ์ ์๋ฅผ ๊ตฌํ ์ ์๋ค. ํ ์นํ์ด์ง์ ๊ธฐ๋ณธ์ ์๋ ํด๋น ์นํ์ด์ง์ ํ ์คํธ ์ค, ๊ฒ์์ด๊ฐ ๋ฑ์ฅํ๋ ํ์์ด๋ค. (๋์๋ฌธ์ ๋ฌด์) ํ ์นํ์ด์ง์ ์ธ๋ถ ๋งํฌ ์๋ ํด๋น ์นํ์ด์ง์์ ๋ค๋ฅธ ์ธ๋ถ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋ ๋ง..
๋ธ๋ก ์ด๋ํ๊ธฐ โ โ โ โโ 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/60062# ๋ฌธ์ ์ค๋ช ๋ ์คํ ๋์ ์ด์ํ๊ณ ์๋ ์ค์นดํผ๋ ๋ ์คํ ๋ ๋ด๋ถ๊ฐ ๋๋ฌด ๋ก์ ์น๊ตฌ๋ค๊ณผ ํจ๊ป ์ง์ ๋ฆฌ๋ชจ๋ธ๋ง ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋ ์คํ ๋์ด ์๋ ๊ณณ์ ์ค๋ ธ์ฐํ์ด์ผ๋ก ๋งค์ฐ ์ถ์ด ์ง์ญ์ด์ด์ ๋ด๋ถ ๊ณต์ฌ๋ฅผ ํ๋ ๋์ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ธ๋ฒฝ์ ์ํ๋ฅผ ์ ๊ฒํด์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ๋ ์คํ ๋์ ๊ตฌ์กฐ๋ ์์ ํ ๋๊ทธ๋ ๋ชจ์์ด๊ณ ์ธ๋ฒฝ์ ์ด ๋๋ ๋ n๋ฏธํฐ์ด๋ฉฐ, ์ธ๋ฒฝ์ ๋ช๋ช ์ง์ ์ ์ถ์๊ฐ ์ฌํ ๊ฒฝ์ฐ ์์๋ ์๋ ์๋ ์ทจ์ฝํ ์ง์ ๋ค์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ด๋ถ ๊ณต์ฌ ๋์ค์๋ ์ธ๋ฒฝ์ ์ทจ์ฝ ์ง์ ๋ค์ด ์์๋์ง ์์๋ ์ง, ์ฃผ๊ธฐ์ ์ผ๋ก ์น๊ตฌ๋ค์ ๋ณด๋ด์ ์ ๊ฒ์ ํ๊ธฐ๋ก ํ์ต๋๋ค. ๋ค๋ง, ๋น ๋ฅธ ๊ณต์ฌ ์งํ์ ์ํด ์ ๊ฒ ์๊ฐ์ 1์๊ฐ์ผ๋ก ์ ํํ์ต..
ํ๋ณดํค ๋ฌธ์ ๋ฌธ์ ์ค๋ช ํ๋ณดํค ํ๋ ์ฆ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ ์กฐ๊ต์ธ ์ ์ด์ง๋ ๋ค์ค ํ๊ณผ์ฅ๋์ ์ง์๋ก, ํ์๋ค์ ์ธ์ ์ฌํญ์ ์ ๋ฆฌํ๋ ์ ๋ฌด๋ฅผ ๋ด๋นํ๊ฒ ๋์๋ค. ๊ทธ์ ํ๋ถ ์์ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ ๋์ด๋ ค, ๋ชจ๋ ์ธ์ ์ฌํญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฃ๊ธฐ๋ก ํ์๊ณ , ์ด๋ฅผ ์ํด ์ ๋ฆฌ๋ฅผ ํ๋ ์ค์ ํ๋ณดํค(Candidate Key)์ ๋ํ ๊ณ ๋ฏผ์ด ํ์ํ๊ฒ ๋์๋ค. ํ๋ณดํค์ ๋ํ ๋ด์ฉ์ด ์ ๊ธฐ์ต๋์ง ์๋ ์ ์ด์ง๋, ์ ํํ ๋ด์ฉ์ ํ์ ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์ ์ ํ์ธํ์ฌ ์๋์ ๊ฐ์ ๋ด์ฉ์ ํ์ธํ์๋ค. ๊ด๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฆด๋ ์ด์ (Relation)์ ํํ(Tuple)์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ(Attribute) ๋๋ ์์ฑ์ ์งํฉ ์ค, ๋ค์ ๋ ์ฑ์ง์ ๋ง์กฑํ๋ ๊ฒ์ ํ๋ณด ํค(Candidate Key)๋ผ๊ณ ํ๋ค. ์ ์ผ์ฑ(uni..
Comment