๊ฐ๋ฐ์
33
[๋ฐฑ์ค] ๋ ์ฉ์ก java ์ฌ์ด ํ์ด^^
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ์ฉ์ก๋ง๋ค ํน์๊ฐ์ด ์กด์ฌ๋ ์ฉ์ก์ ๊ณจ๋ผ์ ๋์ ํน์ ๊ฐ์ ํฉํ์ ๋, ๊ทธ ํฉ์ด 0์ ๊ฐ์ฅ ๊ฐ๊น์ด ์กฐํฉ์ ๊ตฌํ์ฌ๋ผ2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: Two way Two pointer์ฉ์ก์ ํน์๊ฐ์ 1์ฐจ์ ๋ฐฐ์ด์ ์
๋ ฅ๋ฐ๊ณ , ํด๋น ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.index = 0์ L ํฌ์ธํฐ, index = N-1์ R ํฌ์ธํฐ๋ฅผ ๋๋คL+R > 0 ์ผ ๊ฒฝ์ฐ, R ํฌ์ธํฐ๋ฅผ ํ ์นธ ํ์ง ์์ผ์ ํฉ์ ํํฅ์กฐ์ ํ๋ค.L-R ์ผ ๊ฒฝ์ฐ, L ํฌ์ธํฐ๋ฅผ ํ ์นธ ์ ์ง ์์ผ์ ํฉ์ ์ํฅ์กฐ์ ํ๋ค.0์ ๊ฐ๊น์ด ๊ฐ์ ๊ตฌํด์ผํจ์ผ๋ก, ๋ ์ฌ์ด์ ํฉ์ ์ ๋๊ฐ์ด ์ต์์ธ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค.(์๋ํ๋ฉด, ๋ ํฌ์ธํฐ ์ฌ์ด์ ํฉ์ ์ ๋๊ฐ์ด ์ปค์ง์๋ก 0์์ ๋ฉ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.)(1) ๋จ๋ฑกํญ ํฌ ํฌ์ธํฐ๋ก ๋ต์ ๊ตฌํ ์ ์๋ ..
2024.12.23
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 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
์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ-์ด๋ก
[๋ฐฑ์ค] 11003 ์ต์๊ฐ ์ฐพ๊ธฐ java ํ์ด (๊ทธ๋ฆผ์ผ๋ก ์ฌ์ด ์ค๋ช
^^)
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์์ ๋ ๋์๊ฐ์, ์๋์ฐ ๊ตฌ๊ฐ์์ ์ต์๊ฐ์ ๋งค๋ฒ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: Sliding Window, Data Structure (Deque)ํ์ด์ฌ์์๋ ์ถ๊ฐ์๊ฐ์ด ์ฃผ์ด์ค์ ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํด๋ ํ๋ฆฌ์ง๋ง, Java์์๋ ํ๋ฆฌ์ง ์๋๋ค. ์ ์ฐ์ ์์ ํ๋ก๋ ์๋๋์ง์ ๋ํด 4๋ฒ ํญ๋ชฉ์์ ์ค๋ช
ํ๊ฒ ๋ค.(1) ์ ์ฒด ์ ๊ทผ ๋ฐฉ์ArrayDeque๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ๊ตฌํํ๋ค.(ํด๋น deque๋ ํ์ฌ ๊ตฌ๊ฐ์ธ ๊ฐ๋ค๋ง ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ค๋ฆ์ฐจ์์ผ๋ก ๊ฐ์ ์์๋ฅผ ์ ์งํ๋ค. (front = ์ต์๊ฐ))์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ์ฉ ์์ง์ธ๋ค.๊ตฌ๊ฐ์ ์ ๊ท๋ก ์ถ๊ฐ๋ ๊ฐ์ A๋ผ๊ณ ์ณค์ ๋, A์ deque์ rear(๊ผฌ๋ฆฌ)๋ฅผ ๋น๊ตํ๋คrear > A:..
2024.12.21
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
[๋ฐฑ์ค] 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
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด
โค๏ธ[๋ฐฑ์ค] 2143 ๋ ๋ฐฐ์ด์ ํฉ java
1. ๋ฌธ์ ์ค๋ช
๐๋ฌธ์ ๋งํฌ๋ ๋ฐฐ์ด์ ๊ตฌ๊ฐํฉ๋ผ๋ฆฌ ๋ํด์ ๋ชฉํ๊ฐ์ธ T๊ฐ ๋์ค๋ ํ์๋ฅผ ์ธ๋ ๋ฌธ์ 2. ์ ๊ทผ ๋ฐฉ์ ๐๏ธKEY WORD: Two Pointer, Range sum์ด๋ฒ ๋ฌธ์ ๋ ๊ฐ ๋ฐฐ์ด์์ ๋์ฌ ์ ์๋ ๊ตฌ๊ฐํฉ์ ๋ชจ๋ ๊ตฌํด์ List ํ ์ํจ ๋ค์, ์ด ๋ List์์ ๊ฐ์ ๊ฐ๊ฐ ๊บผ๋ด์ด ๋ณด๋ฉฐ, T๊ฐ ๋ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ธ์ผํ๋ค. ํ๋ง๋๋ก ์์ฝํ๋ฉด ๊ตฌ๊ฐํฉ ํ๋ณด๊ตฐ๋ค ์ฌ์ด์์ Two Pointer๋ก ์์ฝํ ์ ์๋ค.(1) ์ ๊ทธ๋ ๊ฒ ํ์ด์ผ ํ๋์?๋ต: ๋ฐฐ์ด์ ์์๋ก ์์๊ฐ ์กด์ฌ์ด ๋ฌธ์ ์ ๊น๋ค๋ก์ด ์ ์ ๋ฐฐ์ด์ ์์๋ก ์์๊ฐ ์กด์ฌํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ๋์ ํฉ์ ํ์ฉํ ๊ตฌ๊ฐํฉ์ ๊ตฌํ๋๋ฐ ๊ธฐ๋ณธ์ด ๋๋ ์ ์ ์กฐ๊ฑด์ "right ํฌ์ธํฐ๋ฅผ ๋๋ฆฌ๋ฉด ๊ตฌ๊ฐํฉ์ด ์ปค์ง๋ค. left ํฌ์ธํฐ๋ฅผ ๋๋ฆฌ๋ฉด ๊ตฌ๊ฐํฉ์ด ์ค์ด๋ ๋ค...
2024.12.09
์๊ณ ๋ฆฌ์ฆ/๋ฌธ์ ํ์ด