์ฝ๋ฉํ
์คํธ
22

[๋ฐฑ์ค] 11004 K-๋ฒ์งธ ์ ํ์ด java
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: QUICK SORTING์ฌ์ค JAVA ๋ด๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋ Sorting์ ์ฐ๋ฉด ๊ฐ๋จํ ํด๊ฒฐ๋๋ ๋ฌธ์ ์ด์ง๋ง, Qucik Sorting ์ฐ์ต์ ์ํด Quick Sorting์ ์ฌ์ฉํด ๋ณด์๋ค. quick sorting์ ๊ฒฝ์ฐ, ์ต์
์ ์๊ฐ ๋ณต์ก๋๊ฐ O( $N^2$ )์ด๋ผ์ ๋ฌธ์ ์ ์ ์๋ ์ต๋ ๋ฐ์ดํฐ ๋์ ๋ณด๋ฉด, ์๊ฐ์ด๊ณผ๊ฐ ๋์ผ ํ๋ ๊ฒ์ด ๋ง๋ค. (์๋ง Quick Sorting์ ์ฐ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์ ๋ฃ์ด๋์ ๊ฒ ๊ฐ๋ค.)(1) ํฐ ํ๋ฆ(1) ํ์ฌ ์ ๋ ฌํด์ผ ํ๋ ์์ญ์ ์ค์๊ฐ์ PIVOT์ผ๋ก ์ ์ (2) PIVOT์ ์์ญ ์ต์ข๋จ ๊ฐ๊ณผ ์๋ฆฌ ๊ต์ฒด. (pivot์ ๋น๊ต ๋์์ ์ํ์ง ์๋๋ก ํ๊ธฐ ์ํจ.)(3) PIVOT์ ์ ์ธ..
2025.01.02
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

[ํ๋ก๊ทธ๋๋จธ์ค] Lv2 ๊ฐ์ฅ ํฐ ์ java ์ฌ์ด ํ์ด^^
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ด ์ง๊ด์ ์ด๋ผ ์ค๋ช
์๋ต2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: custom Sorting์ ๋ ฌ ๋ฌธ์ ์์ง๋ง, ์ง์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๋ฌธ์ ๋ ์๋์๊ณ , ์ ๋ ฌ์ ๊ธฐ์ค์ ์ง์ ์ ์ํ๋ ๊ฒ์ด ์ค์ํ ๋ฌธ์ ์๋ค. ํ์๋ ๋ฌธ์ ๋ฅผ ์ฒ์๋ถํฐ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ง์ ๊ตฌํ์ผ๋ก ๊ฐ๋ฅ์ ์๋ชป ์ก๊ณ ๋ค์ด๊ฐ์ ์์ฒญ ํค๋ฉจ๋ค. ํด๋น ๋ด์ฉ์ ๋ฐฐ์ด ๊ฒ๋ค์ ๋ ์์ธํ ๊ธฐ์ ํ๊ณ ์ฌ๊ธฐ์๋ ์ด๋ป๊ฒ ์ ๊ทผํด์ผ ํ๋์ง์ ์ด์ ์ ๋ง์ถ๊ฒ ๋ค.(1) ์ ๋ ฌ ๊ธฐ์คNumbers ๋ฐฐ์ด์ ์์ ์ค ์์์ ํ๋๋ฅผ A, A์ ๋ค์ ์์๋ฅผ B๋ผ๊ณ ํ์. ์ด ์ซ์๋ค์ ๋ฌธ์์ด์ด๋ผ ๊ฐ์ ํ์ ๋, ๋ค์๊ณผ ๊ฐ์ด ์ด์ด ๋ถ์ผ ์ ์์ ๊ฒ์ด๋ค. AB ํํBA ํํ์ด ๋ ํํ ์ค ๋ฌด์์ด ํฐ์ง๋ฅผ ๋์ ๊ด๊ณ ๋น๊ตํ๋ฉด ๋๋ค.AB > BA , A๊ฐ ์์ ..
2025.01.01
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

Quick ์ ๋ ฌ, ๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ดํดํ๊ธฐ
1. Quick ์ ๋ ฌ์ ๋ฌด์์ธ๊ฐ?Pivot(์ค์ถ)๊ฐ ๋๋ ๊ฐ์ ํ๋ ์ ์ ํด์ ๊ทธ ๊ฐ๋ณด๋ค ์์ ๊ฐ์ ์ผ์ชฝ์ผ๋ก, ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชจ์๋ค. ์ด์ ๋๋ ์ง ๋ ๊ทธ๋ฃน ๋ด์์ ๋ค์ Pivot์ ์ ์ ํ๊ณ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค. ๊ฐ์ ๋ ์ด์ ์ชผ๊ฐค ์ ์์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๋ชจ๋ ๊ฐ์ด ์ ๋ ฌ๋์ด ์๋ค.2. ์๋ฆฌ๋ณํฉ์ ๋ ฌ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถํ ์ ๋ณต์ ํ์ฉํ๋ ๋ ๋ค๋ฅธ ์์์ด๋ค. ๋ณํฉ ์ ๋ ฌ์์๋ ์ ๋ถํ ํ ์ ๋ณต ์ด์๋ค๋ฉด, quick ์ ๋ ฌ์ ์ ์ ๋ณต, ํ ๋ถํ ํ์์ด๋ผ ์๊ฐํ๋ฉด ๋๊ฒ ๋ค.์ ๋ณต์๋ ๋ง์ฃผ๋ณด๋ ํฌ ํฌ์ธํฐ๊ฐ ํ์ฉ๋๋ค. ์ด๋ป๊ฒ ์ฐ์ด๋์ง๋ ๋ฐ์ ์์์์ ์์ธํ ์ค๋ช
ํ๊ฒ ๋ค. (1) Pivot ์ ํ๊ธฐ (์ ํ๋ ๋ฐฉ์์ ๋์ ๋ง๊ฒ ์์ )(2) Pivot๋ณด๋ค ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ชฐ๊ธฐ, ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ์ผ์ชฝ์ผ๋ก ๋ชฐ๊ธฐ (์ ๋ณต by ํฌ ํฌ..
2024.12.31
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก

[๋ฐฑ์ค] 1253 ์ข๋ค. java ํ์ด (๊ทธ๋ฆผ์ผ๋ก ์ฌ์ด ์ค๋ช
^^)
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ์ผ๋ จ์ ์๊ฐ 1์ฐจ์ ๋ฐฐ์ด ํ์์ผ๋ก ์ฃผ์ด์ง๋ค. ์ด๋ ์๋ค ์ค ์์์ ์ ํ๋๋ฅผ ๋ค๋ฅธ ์ ๋๊ฐ์ ํฉ์ผ๋ก ๋ํ๋ผ ์์ ๋, ์ด ์์์ ์๋ฅผ ์ข์ ์๋ผ๊ณ ํ๋ค. ์ด๋ฌํ ์ข์ ์๊ฐ ๋ฐฐ์ด ๋ด์ ๋ช ๊ฐ์ธ์ง ๊ตฌํ๋ผ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKey Word: Two-way Two Pointer๋ ํฌ์ธํฐ์ ํฉ > target: R ํฌ์ธํฐ๋ฅผ ํ ์นธ ๋ด๋ ค ํฉ์ ํํฅ ์กฐ์ ๋ ํฌ์ธํฐ์ ํฉ : L ํฌ์ธํฐ๋ฅผ ํ ์นธ ์ฌ๋ ค ํฉ์ ์ํฅ ์กฐ์ ๋ ํฌ์ธํฐ์ ํฉ == target: ๋ต์ +1 ์ฌ๋ฆฌ๊ณ ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ(1) ์๊ฐ ๋ณต์ก๋๋? N = 2000 ์ผ๋ก ์ด์ค ๋ฐ๋ณต๋ฌธ๊น์ง ํ์ฉ ๋ฒ์์ด๋ค. ๋ฐ๋ผ์N๊ฐ ์ค์ ํ๋ Target ๊ฐ์ผ๋ก ์ฐพ๊ธฐ (O(N))๋ ํฌ์ธํฐ ์์ง์ด๋ฉฐ Target ๊ฐ ๋ง๋ค ์ ์๋์ง ์ฐพ๊ธฐ (O(N))๋ ์์ง์์ ..
2024.12.26
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

[๋ฐฑ์ค] 2905 ํ์ค์ด์ ์ธํ๋ฆฌ ๋ฌธ์ ํ์ด java (๊ทธ๋ฆผ์ผ๋ก ์ฝ๊ฒ ์ค๋ช
^^)
1
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ด ์ด๋ ค์์ ๋ถ์ฐ ์ค๋ช
์ ํ๊ฒ ๋ค.N๊ฐ์ ์ธํ๋ฆฌ์ ๋๋น๊ฐ X์ธ ๋ฃฐ๋ฌ๊ฐ ์๋ค. ์ธํ๋ฆฌ์ ๊ฒฝ์ฐ ๋๋น๋ 1๋ก ๊ณ ์ ์ด๊ณ , ๋์ด๋ง 1์ฐจ์ ๋ฐฐ์ด ํ์์ผ๋ก ์ฃผ์ด์ง๋ค. ๋น์ ์ ๋ฃฐ๋ฌ๋ฅผ ํ์ฉํ์ฌ ํ์ธํธ๋ฅผ ์น ํ ๊ฒ์ธ๋ฐ, ๋๋น๊ฐ X์์ผ๋ก, X ๋๋น ๋ด์ ์ธํ๋ฆฌ๋ ํ ๋ฒ์ ์น ํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ์ค์ํ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค. (1) ๋ฃฐ๋ฌ์ ๋ถ๋ถ์ด ํ๊ณต์ ๋ฟ์ผ๋ฉด ์๋๋ค.์ผ์ชฝ๊ณผ ๊ฐ์ด ์ผ๋ จ์ ์ธํ๋ฆฌ๊ฐ ์ฃผ์ด์ง๋ค๋ฉด, ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ์ ํ
๋๋ฆฌ ์ ์ชฝ๋ง ๋กค๋ฌ๋ฅผ ๋๋ ค ์น ํ ์ ์๋ค๋ ๋ง์ด๋ค. ์ฆ ๋กค๋ฌ ๋๋น X ๋ด์ ์ ์ผ ์์ ์ธํ๋ฆฌ๊ฐ ์์น ์ ๊ธฐ์ค์ด ๋๋ค. (2) ์น ํ๋ฐ๋ ๋ ์น ํ ์ ์๋ค.๋ค์๊ณผ ๊ฐ์ด ๋กค๋ฌ์ ๋๋น๊ฐ 3์ผ ๋, ์ฒ์ ๋ง๋ฑ๋จ๋ฆฌ๋ ๊ตฌ๊ฐ์์๋ ์ต๋๋ก ์น ํ ์ ์๋ ๋์ด๊ฐ 1์ผ ๊ฒ์ด๋ค.๋กค๋ฌ๋ฅผ ํ ์นธ ..
2024.12.25
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

[๋ฐฑ์ค] 3020 ๊ฐ๋ฅ๋ฒ๋ java ์๋ฒฝ ํ์ด!
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: ๋์ ํฉ, ์ด๋ถ ํ์๋๊ตด์ ๋์ด์ธ H์ ๊น์ด์ธ N์ด ๊ฐ๊ฐ \(10^{5}\)์ด๋ฏ๋ก, ์์ ํ์์ผ๋ก ํ๋์ ํ๋ง๋ค ๋ชจ๋ ์ด์ ์กฐํํ๋ค๋ฉด 1์ด์ \(10^{10}\)๋ฒ ์ด์์ ์ฐ์ฐ์ ํด์ผํด์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ ๊ฒ์ด๋ค.ํด๋น ๋ฌธ์ ๋ *๊ฑฐ๊พธ๋ก ๋งค๋ฌ๋ ค ์๋ ์ข
์ ์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ?* ์ ๋ํ ๋ช
ํํ ๊ฐ์ด๋๋ผ์ธ๋ง ๊ณํํ ์ ์๋ค๋ฉด ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ข
์ ์ ์ฒ๋ฆฌ๋ฐฉ๋ฒ์ ๋ฐ๋ผ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์๋๋ฐ, ํ๋๋ ๋์ ํฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ์ด๋ถ ํ์์ด๋ค.(1) ๋์ ํฉa. ๊ฒฐ๋ก ๋จผ์ 1. "์์๊ณผ ์ข
์ ์ ์
๋ ฅ์ ๋ถ๋ฅํ์ฌ Y์ถ ์์น์ ๋ฐ๋ฅธ ๊ฐ ์ฐ๋ฌผ์ ์์น๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด ๊ตฌํ"2. "๊ฐ ๋ฐฐ์ด์ ๋์ ํฉ ๊ตฌํ๊ธฐ (์์ ๋์ ํฉ ๋ฐฐ์ด์ sum_S[i], ..
2024.12.19
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

[๋ฐฑ์ค] 16139 ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ java ํ์ด
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: ๊ตฌ๊ฐ ํฉ๋์ ํฉ ๋ฐฐ์ด S์์ A~B ๊ตฌ๊ฐ ๋ด์ ๊ตฌ๊ฐํฉ์ ๊ตฌํ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํํํ๋๊ฐ?S[B] - S[A-1] ์ด์๋ค. A๊ฐ ๊ตฌ๊ฐ๋ด์ ํฉํด์ง๋๋ก A-1๊น์ง์ ๊ตฌ๊ฐํฉ์ ์ ๊ฑฐํ๋ค. ์ด๋ฌํ ์๋ฆฌ๋ ๊ตฌ๊ฐ ๋ด์ ์ํ๋ฒณ์ด ๋ช ๋ฒ ๋ฑ์ฅํ๋๊ฐ ์ฐพ๋ ์ด๋ฒ ๋ฌธ์ ์์๋ ์ฌ์ฉํ ์ ์๋ค.์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด, a๊ฐ A๊ตฌ๊ฐ์์ ํ๋ฒ, B๊ตฌ๊ฐ์์ ํ๋ฒ ๋์จ๋ค๊ณ ํ์. ๊ทธ๋ฌ๋ฉด, S[A] = 1, S[B] = 2๊ฐ ๋ ๊ฒ์ด๋ค. ๊ตฌ๊ฐ์ ํ์ธํ๋ฉด ๋ฌธ์์ด์ด A์ ์์น๋ฅผ ๋์ด์์ B๊น์ง ๊ตฌ๊ฐ์ ์ ํ๋ ์๊ฐ a๋ ํ๊ฐ์ด๋ค. S[B]-S[A]๋ A+1 ~ B๊น์ง์ ๊ตฌ๊ฐํฉ์์ผ๋ก 2-1 = 1์ด ๋์จ๋ค. ๋ฐ๋ฉด S[B] - S[A-1]์ A์ ์์น๋ถํฐ B๊น์ง์ ๊ฑฐ๋ฆฌ์์ a์ ๊ฐ์์์ผ๋ก S[..
2024.12.12
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด

โค๏ธ [๋ฐฑ์ค] 17425 ์ฝ์์ ํฉ java
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌf(n) = n์ด๋ ์ซ์์ ์ฝ์๋ค์ ํฉg(n) = 1~n๊น์ง ๊ฐ ์ซ์์ ์ฝ์๋ค์ ํฉ ์ฆ f(1) ~ f(n)์ ํฉ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: ๋์ ํฉ, ์๊ฐ ๋ณต์ก๋์ ๋ํ ๊ฐf(n)์ ๊ตฌํ๋ค. (1~ 1000000 ๊น์ง ์ ์ฒด ์์ ๋ํด ๊ตฌํ๋ค.)๋ชจ๋ f(n) ๋ฐฐ์ด์ 1๋ก ์ด๊ธฐํ (1์ ๋ฌด์กฐ๊ฑด ์ฝ์์ ํฌํจ๋๋ฏ๋ก)f(ij) += i(i = 2 ~ 1000000๊น์ง ๋ชจ๋ ์ํ, j = 1๋ถํฐ 1์ฉ ์ฆ๊ฐํจ. ์ฆ `ij=i์ ๋ฐฐ์๋ฅผ ๋ํ๋.`)g(n)์ f(n)์ ๋์ ์ผ๋ก ๊ตฌํ๋ค.๋ต์ ์ถ๋ ฅํ๋ค.f(i*j) = i๋ฅผ ์งํํ๋ฉด, i์ ๋ฐฐ์์๋ i๋ฅผ ๋ฌด์กฐ๊ฑด ๋ํ๊ณ i๊ฐ 1~ 1000000๊น์ง ๋ชจ๋ ์๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์ซ์๋ง๋ค ์์ ์ ์ฝ์๋ฅผ ๋น ์ง์์ด ๋ํ ์ ์๋ค. ์ฌ๊ธฐ์ ๋ค..
2024.12.10
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด