์ต๋ ์ต์ ์ฐพ๊ธฐ ์ ํ ๋ฌธ์ ์ฃผ์ด์ง ๋ฆฌ์คํธ์ ์ต๋, ์ต์ ๊ฐ์ ์ฐพ๊ฑฐ๋ n๋ฒ์งธ ํฐ ๊ฐ, n๋ฒ์งธ ์์ ๊ฐ์ ์ฐพ๋ ๊ณผ์ ๋ ํ๋ก๊ทธ๋จ์์ ๋ง์ด ๋ฑ์ฅํ๋ค. ์ด๋ ๊ฒ n๊ฐ์ ์ซ์๋ค ์ค k๋ฒ์งธ๋ก ์์(๋๋ ํฐ) ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ๋ฅผ 'Selection problem' ์ฆ, ์ ํ ๋ฌธ์ ๋ผ๊ณ ํ๋ค. ์ต๋ ์ต์ ์ฐพ๊ธฐ ์ ํ ๋ฌธ์ ์์ ๊ฐ์ฅ ์ฌ์ด ๋ฌธ์ ๊ฐ ์ต๋ / ์ต์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์ฃผ์ด์ง ๋ฆฌ์คํธ์ ์ต๋๊ฐ์ ์ฐพ๊ธฐ ์ํด์๋ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ ๊น? ์ ๋ ฌ ๋จผ์ , ์ด์ ์ ๋ฐฐ์ ๋ ์ ๋ ฌ์ ์ด์ฉํ ์ ์๋ค. ์ ๋ ฌ ํ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์๋ฅผ ๊ฐ์ ธ์ค๋ฉด ์ต๋๊ฐ์ ์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ค๊ฐ ์์๋ค์ ์ ๋ ฌ์ ์ต๋๊ฐ์ ์ฐพ๋๋ฐ์ ๋ถํ์ํ ๊ณผ์ ์ด๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ์ ์ด์ฉํ๋ฉด ์ ๋ ฌ์ ์ต์ ์๊ฐ๋ณต์ก๋์ธ O(nlgn)๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. min/..
ํ์ ํ์์ ์ฃผ์ด์ง ์๋ฃ๋ค ์ค ์ํ๋ ์กฐ๊ฑด์ ํด๋นํ๋ ์๋ฃ๋ฅผ ์ฐพ๋ ๊ณผ์ ์ด๋ค. ์ปดํจํฐ์์ ํ์์ ์์ฃผ ์ด๋ฃจ์ด์ง๋ฏ๋ก ํจ์จ์ ์ธ ๋ฐฉ์์ผ๋ก ์ํํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ด์ ์ ๋ฐฐ์ ๋ '์ ๋ ฌ'์ ํ์์ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ์ ๋ ฌ์ ๋ฆฌ์คํธ๋ฅผ ํ๋์ ๊ธฐ์ค์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด์๋ ์ฐ์ด์ง๋ง ์ํ๋ ์๋ฃ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ํ๊ธฐ ์ํด ์ฐ์ด๊ธฐ๋ ํ๋ค. ๋ฌผ๋ก ๊ตณ์ด ์ ๋ ฌ์ด ์๋๋๋ผ๋ ํ์์ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๋ค. ์ ๋ ฌ ๋ณด๊ธฐ ์์ผ๋ก ์๊ฐํ ํ์์ ๋ค์์ 4๊ฐ์ง ์ข ๋ฅ์ด๋ค. ์ ํํ์ ์ด์งํ์ ํด์ํ์ BST ํ์์ ์ํด์๋ ๋ฐฐ์ด, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ํธ๋ฆฌ, ๊ทธ๋ํ ๋ฑ ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ฌ์ฉ๋๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ๋ง์ถฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค. ์๋ฃ๊ตฌ์กฐ ๋ณด๊ธฐ ์ ํ ํ์ ์์ฐจ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ์ ํ ํ์์ ๊ฐ์ฅ ๊ฐ๋จํ ํ์ ๋ฐฉ๋ฒ์ด๋ค. ์ ํ ํ์..
BST BST(Binary Search Tree)๋ ํธ๋ฆฌ์ ํ ์ข ๋ฅ์ด์ ์ด์งํ์์ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค. ๊ณผ์ BST๋ฅผ ์ด์ฉํ ํ์์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ์ด์ง ํ์ ํธ๋ฆฌ ๋ง๋ค๊ธฐ (์์ฑ) ๋ฃจํธ ๋ ธ๋์์ ๋ด๋ ค๊ฐ๋ฉด์ ์ํ๋ ์์ ์ฐพ๊ธฐ (ํ์) ์ญ์ ๋ฐ ์ฝ์ ํ๊ธฐ (์ญ์ / ์ฝ์ ) ์์ ๋จผ์ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋ง๋ค์ด๋ณด์. ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ถ๋ชจ ๋ ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์๋ธํธ๋ฆฌ์๋ ๋ ์์ ๊ฐ์ ๋ ธ๋๊ฐ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์๋ ๋ ํฐ ๊ฐ์ ๋ ธ๋๊ฐ ์์ด์ผํ๋ค. ๋ฐ๋ผ์ ์์๋ฅผ ํ๋์ฉ ์ฝ์ ํ๋ฉด์ ์๋ง์ ์์น๋ฅผ ์ฐพ์์ฃผ๋ฉด ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์จ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ์ค์ ์ํํ๋ฉด ์ ๋ ฌ๋ ๋ฆฌ์คํธ๊ฐ ๋๋ค. ๊ทธ ๋ค์์๋ ๋ฃจํธ ๋ ธ๋์์ ๋ด๋ ค๊ฐ๋ฉด์ ์ํ๋ ์์๋ฅผ ์ฐพ๊ณ ์ญ์ ํด๋ณด์. ์ํ๋ ์์๋ 6์ด๋ค. ์ผ์ชฝ ๊ทธ๋ฆผ์์ ์ค๋ฅธ์ชฝ ๊ทธ..
H-index ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/42747# ๋ฌธ์ ์ค๋ช H-Index๋ ๊ณผํ์์ ์์ฐ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ์ด๋ ๊ณผํ์์ H-Index๋ฅผ ๋ํ๋ด๋ ๊ฐ์ธ h๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ํค๋ฐฑ๊ณผ1์ ๋ฐ๋ฅด๋ฉด, H-Index๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํฉ๋๋ค. ์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ nํธ ์ค, h๋ฒ ์ด์ ์ธ์ฉ๋ ๋ ผ๋ฌธ์ด hํธ ์ด์์ด๊ณ ๋๋จธ์ง ๋ ผ๋ฌธ์ด h๋ฒ ์ดํ ์ธ์ฉ๋์๋ค๋ฉด h์ ์ต๋๊ฐ์ด ์ด ๊ณผํ์์ H-Index์ ๋๋ค. ์ด๋ค ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์ธ์ฉ ํ์๋ฅผ ๋ด์ ๋ฐฐ์ด citations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๊ณผํ์์ H-Index๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ์ฌํญ ๊ณผํ์๊ฐ ๋ฐํํ ๋ ผ๋ฌธ์ ์๋ 1ํธ..
K๋ฒ์งธ ์ ๋ฌธ์ https://programmers.co.kr/learn/courses/30/lessons/42748 ๋ฌธ์ ์ค๋ช ๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด array๊ฐ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด array์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅด๋ฉด [5, 2, 6, 3]์ ๋๋ค. 1์์ ๋์จ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ฉด [2, 3, 5, 6]์ ๋๋ค. 2์์ ๋์จ ๋ฐฐ์ด์ 3๋ฒ์งธ ์ซ์๋ 5์ ๋๋ค. ๋ฐฐ์ด array, [i, j, k]๋ฅผ ์์๋ก ๊ฐ์ง 2์ฐจ์ ๋ฐฐ์ด commands๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, commands์ ๋ชจ๋ ์์์ ๋ํด ์์ ์ค๋ช ํ ์ฐ์ฐ์ ์ ์ฉํ์ ๋ ๋์จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ๋ด์..
ํต ์ ๋ ฌ ๊ฐ๋ ํต ์ ๋ ฌ์ ์ธ๋ถ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. pivot์ด๋ผ๋ ์์๋ฅผ ์ ํํ ํ, pivot์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์๋ pivot๋ณด๋ค ์์ ์์๋ค์ ๋๊ณ ์ค๋ฅธ์ชฝ์๋ pivot๋ณด๋ค ํฐ ์์๋ค์ ๋๋๋ค. ์ดํ ์ํํธ์ถ์ ์ด์ฉํ์ฌ ์ฌ๊ท์ ์ผ๋ก ์ผ์ชฝ, ์ค๋ฅธ์ชฝ์ผ๋ก ๋ถ๋ฅํด๋ ์์๋ค์ ๋ํด ์ ๊ณผ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ์์ ๊ทธ๋ฆผ์ ์ค๋ฅธ์ชฝ ์์๋ค์ ๋ํด ์ํํธ์ถํ ๋ชจ์ต์ด๋ค. ๋ถํ ์ด ๋ถ๊ฐ๋ฅํ ๋๊น์ง ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ์ต์ํ์ ์์๋ก ๋๋์ด์ง๊ณ ์ดํ ์์๋๋ก ๊ฒฐํฉ์ ์งํํ๋ค. ์์ ๊ทธ๋ฆผ์์ ์์ด ์น ํด์ ธ์๋ ์์๋ค์ ์์๋๋ก ํฉ์น๋ฉด ๋๋ค. ํต ์ ๋ ฌ์ ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค. pivot์ผ๋ก 2๊ฐ์ ๋ถ๋ถ ๋ฐฐ์ด์ ์์ฑํ๋ ๋ถํ (Divide) ๊ณผ์ ๊ณผ ๋ถ๋ถ ๋ฐฐ์ด์ ์ฌ๊ท์ ์ผ๋ก ํธ์ถํ๋ ์ ๋ณต(Conquer) ๊ณผ์ ๊ณผ ์ ๋ ฌ๋ ๋ถ๋ถ ๋ฐฐ์ด์ ํฉ..
๊ฐ์ฅ ํฐ ์ ๋ฌธ์ ๋ฌธ์ ์ค๋ช 0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์ ๋๋ค. 0 ๋๋ ์์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์๋ฅผ ์ฌ๋ฐฐ์นํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ํ ์ฌํญ numbers์ ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ ๋๋ค. numbers์ ์์๋ 0 ์ด์ 1,000 ์ดํ์ ๋๋ค. ์ ๋ต์ด ๋๋ฌด ํด ์ ์์ผ๋ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด return ํฉ๋๋ค. ์ ์ถ๋ ฅ ์ numbers retur..
์ฒด์ก๋ณต https://programmers.co.kr/learn/courses/30/lessons/42862# ๋ฌธ์ ๋ฌธ์ ์ค๋ช ์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์ ์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์ ์ ๋ค์ด์ผ ํฉ๋๋ค. ์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด res..
Comment