์๊ณ ๋ฆฌ์ฆ
37
[ํ๋ก๊ทธ๋๋จธ์ค] Lv2 ๊ฐ์ฅ ํฐ ์ java ์ฌ์ด ํ์ด^^
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ด ์ง๊ด์ ์ด๋ผ ์ค๋ช
์๋ต2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: custom Sorting์ ๋ ฌ ๋ฌธ์ ์์ง๋ง, ์ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๋ฌธ์ ๋ ์๋์๊ณ , ์ ๋ ฌ์ ๊ธฐ์ค์ ์ง์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํ ๋ฌธ์ ์๋ค. ํ์๋ ๋ฌธ์ ๋ฅผ ์ฒ์๋ถํฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ง์ ๊ตฌํ์ผ๋ก ๊ฐ๋ฅ์ ์๋ชป ์ก๊ณ ๋ค์ด๊ฐ์ ์์ฒญ ํค๋ฉจ๋ค. ํด๋น ๋ด์ฉ์ ๋ฐฐ์ด ๊ฒ๋ค์ ๋ ์์ธํ ๊ธฐ์ ํ๊ณ ์ฌ๊ธฐ์๋ ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ํ๋์ง์ ์ด์ ์ ๋ง์ถ๊ฒ ๋ค.(1) ์ ๋ ฌ ๊ธฐ์คNumbers ๋ฐฐ์ด์ ์์ ์ค ์์์ ํ๋๋ฅผ A, A์ ๋ค์ ์์๋ฅผ B๋ผ๊ณ ํ์. ์ด ์ซ์๋ค์ ๋ฌธ์์ด์ด๋ผ ๊ฐ์ ํ์ ๋, ๋ค์๊ณผ ๊ฐ์ด ์ด์ด ๋ถ์ผ ์ ์์ ๊ฒ์ด๋ค. AB ํํBA ํํ์ด ๋ ํํ ์ค ๋ฌด์์ด ํฐ์ง๋ฅผ ๋์ ๊ด๊ณ ๋น๊ตํ๋ฉด ๋๋ค.AB > BA , A๊ฐ ์์ ..
2025.01.01
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
๊ธฐ์ ์ ๋ ฌ(radix sort), ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
1. ๊ธฐ์ ์ ๋ ฌ์ด๋?์๋ค์ ์๋ฆฟ๊ฐ์ ํ์ฉํด, ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ ์ ๋ ฌ๋ฐฉ๋ฒ(์ง๊ธ๊น์ง ๋ฐฐ์ด ์ ๋ ฌ๋ค์ ์ ๋ค๊ฐ์ ๋์ ๊ด๊ณ๋ฅผ ๋น๊ตํ๋ ๋น๊ต ์ ๋ ฌ์ด์์ง๋ง, ๊ธฐ์ ์ ๋ ฌ์ ๋ฐ์ดํฐ ๊ฐ์ ๋์ ๊ด๊ณ๋ฅผ ๋น๊ตํ์ง ์์.)์๊ฐ ๋ณต์ก๋๋ O(kn)์ด๋ค. ์ฌ๊ธฐ์ K๋ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง ๋ฐ์ดํฐ ์ค ๊ฐ์ฅ ํฐ ์๋ฆฟ๊ฐ์ ๋งํ๋ค. ์ฝ๋ฉํ
์คํธ์์๋ ์ต๋๊ฐ์ด 10์ต์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๊ธฐ ๋๋ฌธ์ ์ค์ง์ ์ผ๋ก O(N)์ ์๊ฐ์์ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค๋ ์๋ฆฌ์ด๋ค.ํ์ง๋ง ๊ฐ์ฒ ์ ์ฐ๊ธ์ ์ฌ์ฒ๋ผ ๋ฑ๊ฐ๊ตํ์ ์์น์ด๋ค. ํด๋น ์ ๋ ฌ์ ๊ตฌํํ๊ธฐ ์ํด์ ์๋๋ Queue๊ฐ 10๊ฐ๊ฐ ํ์ํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ก์๋จน๋๋ค. ์ด๋ฌํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ธฐ ์ํด ๋ณธ ํฌ์คํ
์์๋ ๋์ ํฉ ๋ฐฐ์ด์ ์ด์ฉํ ๊ตฌํ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ๋ค.2. ์๋ฆฌ0. ์ธํ
ํ์ฌ ํ์ธ ์ค์ธ ์๋ฆฟ๊ฐ์ ๊ฐ์ง ์ซ์๊ฐ ..
2024.12.31
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก
Quick ์ ๋ ฌ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
1. Quick ์ ๋ ฌ์ ๋ฌด์์ธ๊ฐ?Pivot(์ค์ถ)๊ฐ ๋๋ ๊ฐ์ ํ๋ ์ ์ ํด์ ๊ทธ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ ์ผ์ชฝ์ผ๋ก, ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชจ์๋ค. ์ด์ ๋๋ ์ง ๋ ๊ทธ๋ฃน ๋ด์์ ๋ค์ Pivot์ ์ ์ ํ๊ณ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ๊ฐ์ ๋ ์ด์ ์ชผ๊ฐค ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๋ชจ๋ ๊ฐ์ด ์ ๋ ฌ๋์ด ์๋ค.2. ์๋ฆฌ๋ณํฉ์ ๋ ฌ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถํ ์ ๋ณต์ ํ์ฉํ๋ ๋ ๋ค๋ฅธ ์์์ด๋ค. ๋ณํฉ ์ ๋ ฌ์์๋ ์ ๋ถํ ํ ์ ๋ณต ์ด์๋ค๋ฉด, quick ์ ๋ ฌ์ ์ ์ ๋ณต, ํ ๋ถํ ํ์์ด๋ผ ์๊ฐํ๋ฉด ๋๊ฒ ๋ค.์ ๋ณต์๋ ๋ง์ฃผ๋ณด๋ ํฌ ํฌ์ธํฐ๊ฐ ํ์ฉ๋๋ค. ์ด๋ป๊ฒ ์ฐ์ด๋์ง๋ ๋ฐ์ ์์์์ ์ค๋ช
ํ๊ฒ ๋ค.(1) Pivot ์ ํ๊ธฐ (์ ํ๋ ๋ฐฉ์์ ๋์ ๋ง๊ฒ ์์ )(2) Pivot๋ณด๋ค ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชฐ๊ธฐ, ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ์ผ์ชฝ์ผ๋ก ๋ชฐ๊ธฐ (์ ๋ณต by ํฌ ํฌ์ธํฐ)(3..
2024.12.31
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก
๋ณํฉ ์ ๋ ฌ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ!
1. ๋ณํฉ ์ ๋ ฌ์ ๋ฌด์์ธ๊ฐ?๋ณํฉ ์ ๋ ฌ์ (1) ์ธ์ธํ๊ฒ ๋๋๋ค. โ (2) ํ๋์ฉ ์ ๋ณตํ๋ค ์ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ๋์ง ์์ ์ผ๋ จ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค.2. ์๋ฆฌ๋ค์ 3๊ฐ์ง ์์๋ฅผ ๋ฐ๋ผ์ ์งํ๋๋ค.(1) *๋ ์ด์ ์ชผ๊ฐค ์ ์์ ๋๊น์ง ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฆฌ์ํจ๋ค.* ( ๋ถํ by ์ฌ๊ท)(2) ์ธ์ ํ ๋ฐ์ดํฐ ๊ทธ๋ฃน๋ผ๋ฆฌ ๋์๊ด๊ณ ๋น๊ต๋ฅผ ํตํด ์ ๋ ฌ์ํจ๋ค. (์ ๋ณต by ํฌ ํฌ์ธํฐ)(3) ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ํ๋์ ๊ทธ๋ฃน์ผ๋ก ๊ฐ์ฃผํ๊ณ , ๋ฐ์ดํฐ ์ ์ฒด๊ฐ ํ๋์ ๊ทธ๋ฃน์ด ๋ ๋๊น์ง (2)๋ฒ์ ๋ฐ๋ณตํ๋ค.3. ์์๋น ์ ๋ ฌ๋ ์ผ๋ จ์ ๋ฐ์ดํฐ๋ฅผ ์์ ๋ฐฉ์์ ์ฐจ๋ก๋๋ก ์ํํ์ฌ ์ ๋ ฌ์์ผ๋ณด๊ฒ ๋ค.7, 2, 4, 3, 1, 5, 6์ ์ผ๋ จ์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ํจ๋ค๊ณ ๊ฐ์ ํด๋ณด์.(1) ๋ถํ by ์ฌ๊ท์ฌ๊ท๋ฅผ ํตํด ๋ฐ์ดํฐ๋ค์ ๋ ์ด์ ์ชผ๊ฐค ..
2024.12.30
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก
๋ฒ๋ธ ์ ๋ ฌ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
1. ์๋ฆฌ์ฌ์ ์ธํ
: ์ ๋ ฌ๋์ง ์์ 1์ฐจ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ก๊ณ , ํด๋น ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํจ์ ์ ์ ๋ก ํ๋ค.๋ฐฐ์ด์ ์ฒซ ์์๋ฅผ ์กฐํํ๋ค.๋ค์ ์์์ ๋์๊ด๊ณ๋ฅผ ๋น๊ตํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ ์ ํ ์กฐ์น๋ฅผ ํ๋ค.์กฐํ์ค์ธ ์์ > ๋ค์ ์์: ๋์ ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค.์กฐํ ์ค์ธ ์์ ๋ค์ ์์: ์๋ฌด ์กฐ์น ์์ด ์ง๋๊ฐ๋ค.2๋ฒ ๊ณผ์ ์ ๋ฐฐ์ด ๋๊น์ง ๋ฐ๋ณตํ๋ค. ์ด๋ฌ๋ฉด ์ ๋ ฌ๋์ง ์์ ์์ญ ์ต์ฐ๋จ์ ์ ๋ ฌ๋์ง ์์ ๊ฐ ์ค ์ต๋๊ฐ์ด ์์นํ๊ฒ ๋๋ค.(์ฆ 3๋ฒ ๊ณผ์ 1๋ฒ ๋น ํ๋์ ์์๊ฐ ์ ๋ ฌ๋๋ค.)3๋ฒ ๊ณผ์ ์ ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์๊ฐ ์ ๋ ฌ๋ ๋๊น์ง ๋ฐ๋ณตํ๋ค.2. ์์์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ฃผ์ด์ก์ ๋, 5๊ฐ 1๋ณด๋ค ํผ์ผ๋ก ๋์ ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค. 5๊ฐ 3๋ณด๋ค ํผ์ผ๋ก ๋์ด ์๋ฆฌ๋ฅผ ๋ฐ๊พผ๋ค. 5๋ 7๋ณด๋ค ์์์ผ๋ก ์๋ฆฌ๋ฅผ ๋ฐ๊พธ์ง ์๋๋ค. 7์ด 2๋ณด๋ค ํผ์ผ๋ก..
2024.12.26
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก
[๋ฐฑ์ค] 2905 ํ์ค์ด์ ์ธํ๋ฆฌ ๋ฌธ์ ํ์ด java (๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ค๋ช
^^)
1
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ด ์ด๋ ค์์ ๋ถ์ฐ ์ค๋ช
์ ํ๊ฒ ๋ค.N๊ฐ์ ์ธํ๋ฆฌ์ ๋๋น๊ฐ X์ธ ๋ฃฐ๋ฌ๊ฐ ์๋ค. ์ธํ๋ฆฌ์ ๊ฒฝ์ฐ ๋๋น๋ 1๋ก ๊ณ ์ ์ด๊ณ , ๋์ด๋ง 1์ฐจ์ ๋ฐฐ์ด ํ์์ผ๋ก ์ฃผ์ด์ง๋ค. ๋น์ ์ ๋ฃฐ๋ฌ๋ฅผ ํ์ฉํ์ฌ ํ์ธํธ๋ฅผ ์น ํ ๊ฒ์ธ๋ฐ, ๋๋น๊ฐ X์์ผ๋ก, X ๋๋น ๋ด์ ์ธํ๋ฆฌ๋ ํ ๋ฒ์ ์น ํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. (1) ๋ฃฐ๋ฌ์ ๋ถ๋ถ์ด ํ๊ณต์ ๋ฟ์ผ๋ฉด ์๋๋ค.์ผ์ชฝ๊ณผ ๊ฐ์ด ์ผ๋ จ์ ์ธํ๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค๋ฉด, ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ ํ
๋๋ฆฌ ์ ์ชฝ๋ง ๋กค๋ฌ๋ฅผ ๋๋ ค ์น ํ ์ ์๋ค๋ ๋ง์ด๋ค. ์ฆ ๋กค๋ฌ ๋๋น X ๋ด์ ์ ์ผ ์์ ์ธํ๋ฆฌ๊ฐ ์์น ์ ๊ธฐ์ค์ด ๋๋ค. (2) ์น ํ๋ฐ๋ ๋ ์น ํ ์ ์๋ค.๋ค์๊ณผ ๊ฐ์ด ๋กค๋ฌ์ ๋๋น๊ฐ 3์ผ ๋, ์ฒ์ ๋ง๋ฑ๋จ๋ฆฌ๋ ๊ตฌ๊ฐ์์๋ ์ต๋๋ก ์น ํ ์ ์๋ ๋์ด๊ฐ 1์ผ ๊ฒ์ด๋ค.๋กค๋ฌ๋ฅผ ํ ์นธ ..
2024.12.25
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 2003 ์๋ค์ ํฉ2 ์ฌ์ด ํ์ด java ^^
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: one-way Two pointer๋จ๋ฐฉํฅ ํฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ์ ํ์ ์ธ ๋ฌธ์ ์ด๋ค. ์ผ์ชฝ ํฌ์ธํฐ(L)๊ณผ ์ค๋ฅธ์ชฝ ํฌ์ธํฐ(R)์ ๋๋ค. ํด๋น ๊ตฌ๊ฐ ๋ด ์๋ค์ ํฉ์ sum์ด๋ผ ํ๊ฒ ๋ค.sum : R ํฌ์ธํฐ๋ฅผ ์ ์ง์ํจ๋ค.sum >= M: L ํฌ์ธํฐ๋ฅผ ์ ์ง์ํจ๋ค. (๋ง์ฝ sum == M์ด๋ฉด ๋ต์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ +1 ์ฌ๋ฆฐ๋ค.)๊ตฌ๊ฐ ๋ด์ ํฉ์ ๊ตฌ๊ฐ ๋ด์ ๊ฐ์ด ์์ ํ๋์ธ ๊ฒฝ์ฐ๋ ํฌํจํ๋ค. ๋ฐ๋ผ์ arr[0] == M ์ธ ๊ฒฝ์ฐ๋ ์์ธ ์์ด ๊ณ์ฐ์ ํฌํจ๋๋๋ก ํด์ค์ผ ํ๋ค.๋๋ 3๋ฒ์ ๊ท์น์ ์งํค๊ธฐ ์ํด ๋ฐฐ์ด์ N+1๋ก ๋ง๋ค์ด ๊ฐ๋ค์ 1๋ถํฐ ์ฑ์ฐ๊ณ , ํฌ์ธํฐ๋ค์ 0๋ถํฐ ์์ํ๋๋ก ํ์๋ค.3. ์ฝ๋ ์๊ฐ ๐import java.io.*;import java..
2024.12.23
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
ํฌ ํฌ์ธํฐ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
0. ๊ธ์ด ํ๋ฌ๊ฐ๋ ๋ฐฉํฅ๋จผ์ ๊ฐ๋
์ค๋ช
์ ํ๊ณ , ํฌ ํฌ์ธํฐ๋ฅผ ํ์ฉํ๋ ๋ํ์ ์ธ ๋ฌธ์ 2๊ฐ๋ฅผ ์ง์ ํ์ด๋ณด๋ฉฐ, ๊ฐ๋
์ ๋ํ ๋ณด์ถฉ์ ํ๊ฒ ๋ค.1. ๊ฐ๋
1์ฐจ์ ๋ฐฐ์ด์ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ๋๊ณ , ๋ ํฌ์ธํฐ์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ์ฌ ๋ฌธ์ ๋ฅผ ํธ๋ ๊ธฐ์ ๋ฐฐ์ด ์์์ ํน์ ์กฐ๊ฑด์ ๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์์, ์ผ๋ฐ์ ์ผ๋ก ์๊ฐ ๋ณต์ก๋๊ฐ O((N^{2}))๊ฐ ๋ ๋ค๋ฉด, ํฌ ํฌ์ธํฐ ๊ธฐ๋ฒ์ ํ์ฉํ๋ฉด ์๊ฐ ๋ณต์ก๋๋ฅผ O(N)์ผ๋ก ์ค์ผ ์ ์๋ค. (์ด์ ๋ ํ์ฉ์ ์ดํด๋ณด๋ฉฐ ์ค๋ช
ํ๊ฒ ๋ค.)(1) ์ ํํฌ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ๋ ์ ํ์๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์๋ค.a.๋จ๋ฐฉํฅ ์ด์ฉL ํฌ์ธํฐ์ R ํฌ์ธํฐ๊ฐ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์์ง์ด๋ ๊ฒ์ด๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ์๋์ ์๋ฏธํ๋ค๊ณ ๋ณด๋ฉด ๋๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ๋ค๋ฅธ ์ ์ ํฌ์ธํฐ์ ๋ฐ๋ผ ๊ตฌ๊ฐ์ ๊ธธ์ด๊ฐ ๊ฐ๋ณ์ ์ด๋ผ๋ ๊ฒ์ด๋ค.b. ์๋ฐฉํฅ ์ด..
2024.12.23
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก