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..
์ ํ ์ ๋ ฌ ๊ฐ๋ max, min ์ ๋ ฌ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ์ฒ์๋ถํฐ ๋ ์์๊น์ง ํ์ผ๋ฉด์ ์ต์๋ ์ต๋๋ฅผ ์ฐพ์์ ๋ฆฌ์คํธ์ ์ฒ์์ด๋ ๋์ ๋ฃ๊ณ ํด๋น ์์๋ฅผ ์ ์ธํ ๋ค๋ฅธ ์์์ ๋ํด ๋ค์ ์ ๋ ฌ์ ์ํํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋ฌด์์๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ์ ์ฒ์๋ถํฐ ๋๊น์ง ํ์ํ ํ, ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์์ ๊ตํํ๋ค. ๊ทธ ํ ๋ง์ง๋ง ์์๋ฅผ ์ ์ธํ ์ฑ๋ก ์ฒ์๋ถํฐ ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ํ์ํ ํ, ๊ฐ์ฅ ํฐ ์๋ฅผ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ์์์ ๊ตํํ๋ค. ๊ตฌํ ์์ฌ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค. (min ์ ๋ ฌ) for i=0 to n: a[i]๋ถํฐ a[n-1]๊น์ง ์ฐจ๋ก๋ก ๋น๊ตํ์ฌ ์ต์๊ฐ์ด ์๋ a[j]๋ฅผ ์ฐพ๋๋ค. a[i]์ a[j]๋ฅผ ๋ฐ๊พผ๋ค. (max ์ ๋ ฌ) for i=0 to n: a[0]๋ถํฐ a[n-i-1]๊น์ง ์ฐจ๋ก๋ก ๋น๊ตํ์ฌ ์ต๋๊ฐ์ด ์๋ ..
์ ๋ ฌ ์ด๋ค ๋ฐ์ดํฐ๋ค์ด ์ฃผ์ด์ก์ ๋ ์ด๋ฅผ ์ ํด์ง ์์๋๋ก ๋์ดํ๋ ๋ฌธ์ ๊ฐ '์ ๋ ฌ'์ด๋ค. ๋ณดํต ์ปดํจํฐ์์๋ ํ์์ ์ํด์ ์ ๋ ฌ์ ์ํํ๋ค. ํ์์ ์ ๋ ฌ์ ํตํด ํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐ๋ ฅํ ์๊ณ ๋ฆฌ์ฆ์ด ์์ง๋ง, ํ ๋ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํด๋๋ฉด ๋ค์๋ถํฐ๋ ์ด์ง ํ์์ด๋ผ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ๋ช ๋ฒ์ด๊ณ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ฉํ๋ค. ๊ทธ๋์ ์ฃผ์ด์ง ๋ฌด์์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ ๊ฒ์ ๋ง์ ์ฐ๊ตฌ์๋ค์ด ๋ฐฉ๋ฒ์ ๋ด๋์๋๋ฐ, ์์ผ๋ก ์ค๋ช ํ 6๊ฐ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ทธ ์ธ์๋ ๋ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๋ค. ๋ชจ๋ ์ ๋ ฌ์ ์ค๋ช ์ ์์์ ์์ ๋ก ์ค๋ช ํ ๋ฐ์ดํฐ๋ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฌด์์๋ก ๋ฐฐ์น๋์ด์๋ 1~7์ ๋ฐ์ดํฐ์ด๋ค. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ ๋น๊ต + ์ด๋์ผ๋ก ์ธก์ ํ๋ค. ํน์ฑ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ๋ฌ ๊ธฐ์ค์ ๋ฐ๋ผ ๋๋ ์ ์๋ค. ์๊ฐ ๋ณต..
ํ ์ฉ๋ ๊ตฌํ ์ข ๋ฅ ์ฐ์ฐ ์ ๋ ฌ ํ ํ์ ์ถ์์ ์๋ฃํ์ธ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. partial-ordering (๋ถ๋ถ ์ ๋ ฌ)์ ๋ง์กฑํ๋ left-complete binary tree (์ข์ธก ์์ ์ด์ง ํธ๋ฆฌ) ์ด๋ค. ๋ถ๋ถ ์ ๋ ฌ์ ๋ง์กฑํ๋ค๋ ๋ง์ '๋ถ๋ชจ ๋ ธ๋์ ์์๋ ธ๋' ๊ฐ์๋ ํน์ ๋์๊ด๊ณ ์ฑ๋ฆฝํ์ง๋ง, 'ํ์ ๋ ธ๋'๊ฐ์๋ ํด๋น ๋์๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ์ง ์๋๋ค๋ ๋ป์ด๋ค. ์ด์ง ํ์ ํธ๋ฆฌ์์๋ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์์ง๋ง ํ ํธ๋ฆฌ์์๋ ํ์ฉํ๋ค. ์ฉ๋ ํ์ ์ถ์์ ์๋ฃํ์ธ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ๋ฉด ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ ์ค ํ๋๊ฐ O(n)์ผ ์ ๋ฐ์ ์๋ค. ํ์ง๋ง ํ์ ์ด์ฉํ๋ฉด ๊ฐ์ฅ ํฐ ๊ฐ์ด๋ ๊ฐ์ฅ ์์ ๊ฐ์ ๋ ๋ค O(logn)๋ง์ ๋น ..
Quick sort '์๊ณ ๋ฆฌ์ฆ' ์ ๊ณต ์์ ์๊ฐ์ ๋์จ ๊ณผ์ ์ธ '1000๋ง๊ฐ ๋ฐ์ดํฐ ์ ๋ ฌ ํ ํด์ ๊ฐ ๊ตฌํ๊ธฐ'๋ฅผ ํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค. ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ํตํด ๊ตฌํ๋๋ ์ ๋ ฌ ๋ฐฉ๋ฒ ์๊ฐ ๋ณต์ก๋ ์ต์ : O(n^2) ํ๊ท : O(nlogn) ์ค๊ณ๋ฅผ ํตํด์ ๊ฐ์ ๊ฐ๋ฅํ ๋ถ๋ถ ๊ตฌํ ๊ณผ์ pivot์ ์ ํํ๋ค. ์์ชฝ ํฌ์ธํฐ๊ฐ ๋ฎ์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ์์ ์๋ฅผ ์ฐพ๋๋ค. ์๋์ชฝ ํฌ์ธํฐ๊ฐ ๋์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ํฐ ์๋ฅผ ์ฐพ๋๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ๊ตํํ๋ค. 2-4๋ฅผ ๋ฐ๋ณตํ๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ต์ฐจํ๋ค๋ฉด ํ์ฌ ํผ๋ฒ๊ณผ ํด๋น ์์น์ ๊ฐ์ ๊ตํํ๋ค. ํผ๋ฒ๊ณผ ํผ๋ฒ๋ณด๋ค ์์ section, ํผ๋ฒ๋ณด๋ค ํฐ section์ผ๋ก ๋๋๊ณ ๊ฐ section์ ๋ํด 1-5๋ฅผ ์คํํ๋ค. section์ ํฌ๊ธฐ๊ฐ 0 ๋๋ 1์ด๋ฉด ..
Comment