Java
Queue๋ ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ํ์์ด๋, Priority Queue๋ ์ด์ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ๋ถํฐ ๋์ค๊ฒ ๋๋ค. ์ผ๋ฐ์ ์ธ ํ์ฒ๋ผ ์ถ๊ฐ/์ญ์ ์ฐ์ฐ์ด ์์ง๋ง, ๊ทธ ์์์ ๊ด๊ณ์์ด ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค. Priority Queue๋ ํ ๊ตฌ์กฐ(ํธ๋ฆฌ๊ตฌ์กฐ)๋ฅผ ์ด์ฉํด์ ๋ง๋ค๊ณ , ํฐ ๊ฐ์ด ์ฐ์ ์ด ๋๋ ์ต๋ํ๊ณผ ์์ ๊ฐ์ด ์ฐ์ ์ด ๋๋ ์ต์ํ์ด ์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. (default = ์ต์ ํ) ๐น๏ธ Priority Queue ์ฌ์ฉ๋ฒ ์ต์ ํ (์ต์๊ฐ๋ถํฐ ๋ฐฐ์ด) PriorityQueue minHeap = new PriorityQueue(); ์ต๋ ํ (์ต๋๊ฐ๋ถํฐ ๋ฐฐ์ด) PriorityQueue maxHeap = new PriorityQueue(Coll..
Spring Framework/๐ ์๋ฌ ๊ธฐ๋ก
์๋ฐ์์ stream()์ ์ฌ์ฉํด orderProductOption์ ์๋ orderProduct๋ฅผ ์ค์ ํด์ฃผ๋ ๊ณผ์ ์์"Variable used in lambda expression should be final or effectively final" ์๋ฌ๋ฅผ ๋ํ๋ด๋ฉฐ orderProduct์ ๋นจ๊ฐ ๋ฐ์ค์ด ๊ทธ์ด์ก๋ค.๋๋ค ํํ์ ๋ด์์ ์ฌ์ฉ๋๋ ๋ณ์๊ฐ final ๋๋ effectively final์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ๋๋ณด๊ธฐ๐ effectively final : ๋ณ์๊ฐ ์ค์ ๋ก 'final' ๋ก ์ ์ธ๋์ด ์์ง ์๋๋ผ๋ ๋๋ค ํํ์ ๋ด์์ ํด๋น ๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒฝ์ฐ์ด๋ค.int x = 10;Consumer consumer = (value) -> { // x = x + 5; /..
์๊ณ ๋ฆฌ์ฆ/๐๏ธ ์ ๋ฆฌ
V๊ฐ์ ์ ์ ๊ณผ E๊ฐ์ ๊ฐ์ ์ ๊ฐ์ง ๊ฐ์ค ๊ทธ๋ํ G์์ ๋ชจ๋ ์ ์ ์ฌ์ด์ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก (๋ชจ๋ ๋
ธ๋ ๊ฐ์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ) ์์ ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ ๋ด์ ๊ฐ ๋ชจ๋ ์ ์ ์์ ๊ฐ ๋ชจ๋ ์ ์ ์ ๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์์์ธ ๊ฐ์ค์น๋ฅผ ๊ฐ๋ ๊ฐ์ ์ด ์กด์ฌํด๋ ๋๋ค. ์ด๋ค ๋ ์ ์ ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก๋ ์ด๋ค ๊ฒฝ์ ์ง(K)๋ฅผ ๊ฑฐ์น๊ฑฐ๋ ๊ฑฐ์น์ง ์๋ ๊ฒฝ๋ก ์ค ํ๋์ด๋ค. ex). ์ ์ A์ ์ ์ B ์ฌ์ด์ ์ต๋จ ๊ฒฝ๋ก = A-B ๋๋ A-K-B ๋ง์ฝ, ๊ฒฝ์ ์ง๋ฅผ ๊ฑฐ์น๋ค๋ฉด ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ด๋ฃจ๋ ๋ถ๋ถ ๊ฒฝ๋ก ๋ํ ์ต๋จ ๊ฒฝ๋ก์ด๋ค. ex). A-K์ K-B ๋ํ ์ต๋จ๊ฒฝ๋ก ๐ ํน์ง ์ํ๋ง ์๋ค๋ฉด ์์ ๊ฐ์ค์น๋ ๊ฐ๋ฅํ๋ค ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ๊ณํ๋ฒ(DP)์ผ๋ก ์ ๊ทผํ๋ค. โ๏ธ ์๊ฐ๋ณต์ก๋ : θ(V³) (V๋ ๋
ธ๋..
์๊ณ ๋ฆฌ์ฆ/๐๏ธ ์ ๋ฆฌ
๊ทธ๋ํ (ํธ๋ฆฌ) ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ ๋
ธ๋๊ฐ ๊ฐ์ ๊ทธ๋ํ์ ์ํด์๋์ง ํ๋ณ Union ์ฐ์ฐ & Find ์ฐ์ฐ union(x, y) : ๋
ธ๋๋ฅผ ํฉ์น๋ ์ฐ์ฐ find(x) : x๊ฐ ์ด๋ ๊ทธ๋ํ์ ์ํด ์๋์ง ํ๋ณํ๋ ์ฐ์ฐ (๋
ธ๋์ ๋ฃจํธ ๋
ธ๋ ํ์) ๐น๏ธ ์ ๋์จ ํ์ธ๋ ๊ณผ์ ํ์ฌ 5๊ฐ์ ๋
ธ๋๋ ์๋ก ์ฐ๊ฒฐ๋์ด์์ง ์์ ์ํ์ด๋ฏ๋ก ๋ถ๋ชจ๋ ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๊ณ ์๋ค. (๋ถ๋ชจ ๋
ธ๋ ์ด๊ธฐํ) x๋ ๋
ธ๋ ๋ฒํธ์ด๊ณ , parent[x]๋ x๊ฐ ์ด๋ค ๋ถ๋ชจ ๋
ธ๋์ ์ํด ์๋์ง ๋ํ๋ธ๋ค. 1๏ธโฃ union(1, 2) ๋
ธ๋ 1๊ณผ ๋
ธ๋ 2๋ฅผ ํฉ์น๋ค. ๋
ธ๋ 2์ ๋ถ๋ชจ ๋
ธ๋๋ 1์ด ๋์๋ค. parent[2] = 1 2๏ธโฃ union(3, 4) / union(3, 5) ๋
ธ๋ 3๊ณผ ๋
ธ๋ 4๋ฅผ ํฉ์น๊ณ , ๋
ธ๋ 3๊ณผ ๋
ธ๋ 5๋ฅผ ํฉ์น๋ค. ๋
ธ๋ 4์ ๋
ธ..
์๊ณ ๋ฆฌ์ฆ/๐๏ธ ์ ๋ฆฌ
DP(๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ)๋ฅผ ํ์ฉํ ๋ํ์ ์ธ ์ต๋จ ๊ฒฝ๋ก ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํ๋์ ์ ์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์์ ์ฌ์ฉ๋๋ค. ์ต๋จ ๊ฑฐ๋ฆฌ๋ ์ฌ๋ฌ ๊ฐ์ง ์ต๋จ ๊ฑฐ๋ฆฌ๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ ์์ ๋ฌธ์ ๊ฐ ํฐ ๋ฌธ์ ์ ๋ถ๋ถ ์งํฉ์ ์ํด์๋ค๊ณ ๋ณผ ์ ์๋ค. ํ๋์ ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ๋ ๊ทธ ์ด์ ๊น์ง ๊ตฌํ๋ ์ต๋จ ๊ฑฐ๋ฆฌ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ํน์ง์ด ์๋ค. ๐น๏ธ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ณผ์ ์ถ๋ฐ ๋
ธ๋ ์ค์ ์ถ๋ฐ ๋
ธ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ ๋
ธ๋์ ์ต์ ๋น์ฉ ์ ์ฅ ๋ฐฉ๋ฌธํ์ง ์์ ๋
ธ๋ ์ค์์ ๊ฐ์ฅ ๋น์ฉ์ด ์ ์ ๋
ธ๋ ์ ํ ํด๋น ๋
ธ๋ ๊ฑฐ์ณ์ ํน์ ํ ๋
ธ๋๋ก ๊ฐ๋ ๊ฒฝ์ฐ ๊ณ ๋ คํ์ฌ ์ต์ ๋น์ฉ ๊ฐฑ์ 3๏ธโฃ, 4๏ธโฃ๋ฒ ๋ฐ๋ณต ๊ธฐ๋ณธ์ ์ธ ๋ค์ต์คํธ๋ผ - ์ ํํ์ public class Main{ static int INF = 10000..