๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ํ์ด ๊ณผ์ ๋ฌธ์ ๋ฅผ ์์ฝํ๋ฉด ํ ๋๋จผํธ ๊ฒ์์์ ํน์ ํ ๋ฒํธ์ ๋ ์ฐธ๊ฐ์๊ฐ ๋ง๋ ๋ ๊น์ง ๋ช ๋ฒ์ ๊ฒฝ๊ธฐ๋ฅผ ์งํํด์ผ ํ๋์ง ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ฒ์์ ์ฐธ๊ฐ์๋ค์ 1๋ถํฐ N๊น์ง ๋ฒํธ๋ฅผ ๋ฐ๋๋ค.๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ผ์ด๋์ ์ง์ถํ ์ฐธ๊ฐ์๋ค์ ๋ค์ 1๋ถํฐ N/2 ๊น์ง์ ๋ฒํธ๋ฅผ ๋ฐ๋๋ค. ์
์ถ๋ ฅ ์N=8, A=4, B=7 ์ด ๊ฒฝ์ฐ 8๋ช
์ ์ฐธ๊ฐ์๋ค์ด ๊ฒฝ๊ธฐ๋ฅผ ํ ๋ 4๋ฒ ์ ์์ 7๋ฒ ์ ์๊ฐ ๋ง๋ ๋๊น์ง์ ๊ฒฝ๊ธฐ ํ์๋ฅผ ์๋ ๊ทธ๋ฆผ์ผ๋ก ๊ทธ๋ ค ๋ณด์๋ค.๊ฐ ๋ผ์ด๋์์ 4๋ฒ๊ณผ 7๋ฒ์ ํญ์ ์ด๊ฒจ์ ๋ค์ ๋ผ์ด๋๋ก ์ง์ถํ๋ค๊ณ ๊ฐ์ ํ๊ณ ํ์ด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.4๋ฒ๊ณผ 7๋ฒ์ ๊ณ์ ์ด๊ฒจ์ ๋ค์ ๋ผ์ด๋๋ก ์ง์ถํ๋ค4๋ฒ์ 3๋ฒ์ ์ด๊ธฐ๊ณ , 1 ๋๋ 2๋ฒ์ ์ด๊ฒจ์ ์ด 2๋ฒ ์ด๊ธด๋ค7๋ฒ์ 8๋ฒ์ ์ด๊ธฐ๊ณ , 5 ๋๋ 6๋ฒ์ ์ด๊ฒจ์ ์ด ..

My Tech Blog (์๊ณ ๋ฆฌ์ฆ)

์คํ(Stack)๊ฐ์"์คํ"์ ๋ฐ์ดํฐ๋ฅผ ์์์ ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ก, "ํ์
์ ์ถ(LIFO, Last In First Out)" ๋ฐฉ์์ผ๋ก ์๋ํ๋ค. ์ฆ, ๋์ค์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ๊ตฌ์กฐ์ด๋ค. ์คํ์ ์ฃผ๋ก ํจ์ ํธ์ถ, ๊ณ์ฐ๊ธฐ ํ๋ก๊ทธ๋จ์์ ์์ ๊ณ์ฐ, ๋๋ ๋ธ๋ผ์ฐ์ ์ ๋ค๋ก ๊ฐ๊ธฐ ๊ธฐ๋ฅ ๋ฑ์์ ์ฌ์ฉ๋๋ค.* ์ด์ ๋ฐ๋์ "์ ์
์ ์ถ(FIFO, First In First Out)" ๊ตฌ์กฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ 'ํ'๋ผ๊ณ ํ๋ค. ์คํ์ ํ์ฉํ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ๋ ์ ํ์ด ์ ํด์ ธ ์๋ค. ๋ฌธ์ ๋ฅผ ์ ์ฝ์ด๋ณด๊ณ ๋ฐ์ดํฐ๋ฅผ ์์ ์ฌ๋ฆฐ๋ค๋ ์ง, ๋์ค์ ์์ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ด๋ฉด ์คํ์ ํ์ฉํ๋ฉด ๋๋ค. ์คํ์ ์ฌ์ฉํ๋ ๋ฌธ์ ์ ํ โ
๊ดํธ ์ ํจ์ฑ ๊ฒ์ฌ์ฃผ์ด์ง ๋ฌธ์์ด์์ ๊ดํธ์ ์ง์ด ๋ง๋์ง ํ์ธํ๋ ๋ฌธ์ ์คํ์ ์ฌ์ฉํด ์ฌ๋ ๊ดํธ๋ ์ค..

๐ 1. ๋ฌธ์ ์ค๋ช
10์ง์๋ฅผ ์
๋ ฅ๋ฐ์ 2์ง์๋ก ๋ณํํด ๋ฐํํ๋ solution() ํจ์๋ฅผ ๊ตฌํํ์ธ์ ์ ์ฝ์กฐ๊ฑดdecimal์ 1์ด์ 10์ต ๋ฏธ๋ง์ ์์ฐ์์
์ถ๋ ฅ ์decimalreturn10101027110111234511000000111001 ๐ก 2. ํ์ด ๊ณผ์ 10์ง์๋ฅผ 2์ง์๋ก ํํํ๋ ๊ณผ์ ์ ์ด๋ฏธ ์ํ์ ์ผ๋ก ์ฆ๋ช
๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ฒ ์ ๋๋ค.10์ง์ N์ 2๋ก ๋๋ ๋๋จธ์ง, ์ฆ %2 ์ฐ์ฐ์ ํ ๊ฐ์ ์ ์ฅํ๊ณ , N์ ๋ค์ 2๋ก ๋๋๋ค.๋ชซ์ด 0์ด ์๋๋ผ๋ฉด ๋๋จธ์ง๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋ค์ 1์ ์ํํ๋ค๋ชจ๋ ๊ณผ์ ์ด ๋๋๊ณ 1์์ ์ ์ฅํ ์๋ฅผ ๋ค๋ถํฐ ์์๋๋ก ๊ฐ์ ธ์ ๋ถ์ธ๋ค. ์๋ฅผ ๋ค์ด ์ญ์ง์ 13์ ์ ๊ณผ์ ๋๋ก 2์ง์๋ก ๋ณํํ๋ ๋ชจ์ต์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. 13์ 2๋ก ๋๋์ด๊ฐ๋ฉด์ ๋๋ ๋๋จธ์ง๋ฅผ ์์๋๋ก ์ ์ฅํ ํ, ..

์ ๋ ฌ(Sort)๊ฐ์๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐฐ์ดํ๊ฑฐ๋ ๋ฆฌ์คํธ์ ์์๋ฅผ ์ ๋ ฌํ๋ ๊ณผ์ ์ด๋ค. ์ ๋ ฌ์ ํ์ฉํ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ๋ ๋งค์ฐ ๋ค์ํ๋ค. ์ ๋ ฌ ๋ฌธ์ ๋ ๋ฌธ์ ๋ฅผ ํ ๋๋ ์ ๋ ฌ ๊ธฐ์ค์ ์ ํํ ํ์
ํ๊ณ , ๊ทธ์ ๋ง๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ, ์ด์ง ํ์, ํฌ ํฌ์ธํฐ, ๋น๋์ ๊ณ์ฐ ๋ฑ ๋ค์ํ ๊ธฐ์ ์ ์กฐํฉํด ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ๋ค์ด ๋ง๋ค. ์ฃผ์ด์ง ์กฐ๊ฑด์ Arrays.sort() ๋ฅผ ์ด์ฉํด์ ์ ๋ ฌํด์ผ ํ๋ ๋ฌธ์ ๋ ์๊ณ , ์ ๋ ฌ ๊ธฐ์ค์ ์ฌ์ฉ์ ์ ์ ๊ฐ์ฒด์ ๋ง๊ฒ ์ง์ ํด์ผ ํ๋ ๊ฒฝ์ฐ, Comparator ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฐ์ฒด๋ฅผ Collections.sort() ๋๋ Arrays.sort()์ ์ ๋ฌํ์ฌ ์ ๋ ฌํ๋ฉด ๋๊ณ , ์ด ๋ Java 8 ์ด์์์๋ Comparator๋ฅผ ๋๋ค ํํ์์ผ๋ก ..

๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)๊ฐ์greedyํ์ฉ์ฌ - 1. ํ์์ค๋ฌ์ด 2.์์ฌ ๋ง์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)์ ๋งค ์๊ฐ ๊ฐ์ฅ ์ต์ ์ด๋ผ๊ณ ํ๋จ๋๋ ์ ํ์ ๋ฐ๋ณตํ์ฌ ์ต์ข
ํด๋ต์ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฆ, ํ์ฌ ๋จ๊ณ์์์ ์ต์ ์ ์ ํ์ด ์ต์ข
์ ์ผ๋ก๋ ์ต์ ํด(Optimal Solution)๊ฐ ๋๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฝ๋ฉํ
์คํธ์์ ๋ง๋ ๊ฒฝ์ฐ ์ฌ์ ์ ์ธ์ฐ๊ณ ์์ง ์์๋ ํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ฌธ์ ์ ํ์ง์ญ ์ต์ ํด(Local Optimum) → ์ ์ญ ์ต์ ํด(Global Optimum) ๋ณด์ฅ ๊ฐ๋ฅํด์ผ ํจํ์์ ์ ํ(Greedy Choice)๊ณผ ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ(Optimal Substructure) ๋ง์กฑโ
๋์ ํ๋ก๊ทธ๋๋ฐ(Dynamic Programming)๊ณผ ์ฐจ์ด..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์์๋ฃ ๋ง๋ค ์๊ฐ์ ๋ฒ์จ๋ถํฐ ํผ๊ณคํ๋ค. ํํํ ๋ฌธ์ ํ์ด์ ์์, ๋ช
์์ด ๊ทธ๋ํ ๋ฌธ์ ์ธ ๋งํผ ๊ทธ๋ํ์ ๋ํด ๊ฐ๋ตํ ์ค๋ช
ํ๊ณ ์ ํ๋ค.2-1. ๊ทธ๋ํ์ ๊ตฌ์กฐ๋
ธ๋: ์(circle)์ผ๋ก ํ์ํ๊ณ , ์ซ์๋ก ๋ฒํธ๋ฅผ ์ ๋๋ค.๊ฐ์ : ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ (segment)์ผ๋ก, ๋ชจ๋ ๊ฐ์ ์ด ์๋ฐฉํฅ์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ํ์ดํ ์์ด ์ง์ ์ผ๋ก ๊ทธ๋ฆฐ๋ค.return ํ๊ณ ์ ํ๋ ๊ฐ์ 1๋ฒ ๋
ธ๋์์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋
ธ๋์ ์ ์ด๋ค.์ฆ 1๋ฒ ๋
ธ๋์์ ๋ค๋ฅธ ๋
ธ๋๋ค๋ก ์ด๋ํ๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํด์ ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋จผ ๋
ธ๋๋ค์ด ๋ช ๊ฐ์ธ์ง๋ฅผ ๊ตฌํด์ผ ํ๋ค. 2-2. ํด๊ฒฐ ๋ฐฉ๋ฒ(1) ์ธ์ ๋ฆฌ์คํธ๋ก ๊ทธ๋ํ ๋ง๋ค๊ธฐ List> graph = new ArrayList(); ์๋ฅผ ๋ค์ด ๋ฌธ์ ์์ ์ ์๋ vertex ..

1. CPU ์ค์ผ์ค๋ง1-1. CPU ์ค์ผ์ค๋ฌReady ์ํ์ ํ๋ก์ธ์ค ์ค์์ CPU์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ํ๋ก๊ทธ๋จ1-2. ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ๐ก ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(Process Scheduling) ์ด์์ฒด์ (OS)์์ ํ๋ก์ธ์ค๊ฐ CPU ๋ฐ ๊ธฐํ ์์คํ
์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ ๋นํ๋ ์์
์ ๋งํ๋ค. ๋ค์ค ํ๋ก์ธ์ค ํ๊ฒฝ์์ CPU ์ฌ์ฉ์ ์ต์ ํํ๊ณ ์์คํ
์ฑ๋ฅ์ ๊ทน๋ํํ๋ ๋ฐ ํต์ฌ ์ญํ ์ ํ๋ค.1-3. ์ ์ VS ๋น์ ์ ์ค์ผ์ค๋งโ
์ ์ (Preemptive) ์ค์ผ์ค๋งโถ ์ ์: - ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋ฌ๊ฐ ๊ฐ์ ๋ก ์ค๋จํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ๋ ๋ฐฉ์.โถ ํน์ง: - ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด ํ์ฌ ์์
์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จ. - ์ค์๊ฐ..
๐ 1. ๋ฌธ์ ์ค๋ช
๐ก 2. ์ ๊ทผ๋ฐฉ์๋์ ๊ณํ๋ฒ(Dynamic Programming)์ด๋?๋์ ๊ณํ๋ฒ์ ์์ฃผ ์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด, '์ด๋ฏธ ๊ณ์ฐํ ๊ฑด ๊ธฐ์ตํด ๋์๋ค๊ฐ, ๋ค์ ํ์ง ๋ง์'๋ ์ ๋ต์ด๋ค.๋์ ๊ณํ๋ฒ(Dynamic Programming, DP)์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์์ ํ์ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ๋์ผํ ํ์ ๋ฌธ์ ๋ฅผ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ์ด๋ค. ์ฃผ๋ก ์ต์ ํ ๋ฌธ์ ๋ ์กฐํฉ ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ ๋ ์ฌ์ฉ๋๋ค. ๋์ ๊ณํ๋ฒ์๋ Top-Down ๋ฐฉ์์ธ ๋ฉ๋ชจ์ด์ ์ด์
๊ณผ Bottom-Up ๋ฐฉ์์ธ ํ
์ด๋ธ๋ง์ด ์๋ค. Top-Down (๋ฉ๋ชจ์ด์ ์ด์
)์ฌ๊ท๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ. ํ์ ๋ฌธ์ ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ์ฌ ์ค๋ณต ๊ณ์ฐ ๋ฐฉ์งBottom-Up (ํ
์ด๋ธ๋ง)์์ ๋ฌธ์ ๋ถํฐ ์ฐจ๋ก๋๋ก ํด๊ฒฐ..