Blog
About Me
citeFredโs Blog
/
Tags
/
Algorithm&DataStructure
Blog
About Me
citeFredโs Blog
/
Tags
/
Algorithm&DataStructure
Share
Blog
About Me
๐ท๏ธ
Algorithm&DataStructure
# of Posts
10
1 more property
Gallery
Search
[Algorithm] ๋์ ํผ๋ก๋ (์์ ํ์)
๋ฌธ์ ํด์
โข
๊ณผ๊ฑฐ์ ์๋ชป ํ์๋ ๋ฌธ์ ์ด๋ค. ๋ฉด์ ์ค์์ ์ต์๊ฐ์ ๊ตฌํ์ง๋ง ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด์ ์ต๋๊ฐ๋ค์ ๊ตฌํด๋ด์ผ ํ๋ค.
โข
๋ฌธ์ ์์ ๊ฐ๋ก ์ธ๋ก๋ผ๋ ๋ช ์นญ์ ํผ๋๋๋ฉด ์๋๋ค.
โข
๋ฐฐ์ด๋ก ๋ฌถ์ธ ์์๋ค์ ๊ฐ๋ก๊ฐ ๋ ์๋, ์ธ๋ก๊ฐ ๋ ์๋ ์๋ ๊ฒ์ ์๊ฐํ๋ฉด๋๋ค.
โข
๋ฐ๋ผ์ ์์(2๊ฐ์ค)์์ ํฐ ๊ฐ์์์ ์ต๋๊ฐ
โข
์์(2๊ฐ์ค)์์ ์์๊ฐ ์์์ ์ต๋๊ฐ
โข
์ ๊ฐ๋ก, ์ธ๋ก๋ก ์ ํ๋ฉด ๋ชจ๋ ์นด๋๋ค์ ๋ฃ์ ์ ์๋ค.
[Algorithm] ์ต์์ง์ฌ๊ฐํ (์์ ํ์-๋ชจ๋ ์์)
Priority Queue?
์ฐ์ ์์ ํ(Priority Queue)๋?
์ผ๋ฐ์ ์ผ๋ก ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์์๋๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ๋ก ์คํ๊ณผ๋ ๋ค๋ฅด๊ฒ FIFO(First In First Out)์ ๊ตฌ์กฐ ์ฆ ๋จผ์ ๋ค์ด์จย ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋ ๊ตฌ์กฐ๋ฅผย ๊ฐ์ง๋๋ค. PriorityQueue๋ ๋จผ์ ๋ค์ด์จ ์์๋๋ก ๋ฐ์ดํฐ๊ฐ ๋๊ฐ๋ ๊ฒ์ด ์๋ ์ฐ์ ์์๋ฅผ ๋จผ์ ๊ฒฐ์ ํ๊ณ ๊ทธ ์ฐ์ ์์๊ฐ ๋์ ์๋ฆฌ๋จผํธ๊ฐ ๋จผ์ ๋๊ฐ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.ย ์ฐ์ ์์ ํ๋ ํ์ ์ด์ฉํ์ฌ ๊ตฌํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ์ฐ์ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ต๋ํ ํน์ ์ต์ ํ์ ๊ตฌ์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ผ ๋ ๋ฃจํธ ๋ ธ๋๋ฅผ ์ป์ด๋ธ ๋ค ๋ฃจํธ ๋ ธ๋๋ฅผ ์ญ์ ํ ๋๋ ๋น ๋ฃจํธ ๋ ธ๋ ์์น์ ๋งจ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ฝ์ ํ ํ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด์ ์ ์ ํ ์๋ฆฌ๋ฅผ ์ฐพ์์ ์ฎ๊ธฐ๋ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค.
Priority Queue์ ํน์ง
1.
ย ๋์ ์ฐ์ ์์์ ์์๋ฅผ ๋จผ์ ๊บผ๋ด์ ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ (ํ์ ๋ค์ด๊ฐ๋ ์์๋ ๋น๊ต๊ฐ ๊ฐ๋ฅํ ๊ธฐ์ค์ด ์์ด์ผํจ)
2.
ย
๋ด๋ถ ์์๋ ํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์ด์งํธ๋ฆฌ ๊ตฌ์กฐ
๋ก ์ด๋ฃจ์ด์ ธ ์์
3.
ย ๋ด๋ถ๊ตฌ์กฐ๊ฐ ํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ์ ์๊ฐ ๋ณต์ก๋๋ O(N Log N)
4.
ย ์๊ธ์ค๊ณผ ๊ฐ์ด
์ฐ์ ์์๋ฅผ ์ค์์ํด์ผ ํ๋ ์ํฉ
์์ ์ฐ์
Priority Queue ์ ์ธ
์๋ฐ์์ ์ฐ์ ์์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด java.util.PriorityQueue ๋ฅผ import ํ๊ณ Queue<Element> queue = new Queue<>()์ ๊ฐ์ ํ์์ผ๋ก ์ ์ธํ๋ฉด ๋ฉ๋๋ค. ๊ธฐ๋ณธ์ ์ฐ์ ์์๊ฐ ๋ฎ์ ์ซ์๊ฐ ๋ถ์ฌ๋๊ณ ๋ง์ฝ ๋์ ์ซ์๊ฐ ์ฐ์ ์์๊ฐ ๋๊ฒ ํ๊ณ ์ถ๋ค๋ฉด ์ ์ธ ์ Collections.reverseOrder() ๋ฉ์๋๋ฅผ ํ์ฉํฉ๋๋ค.
Priority Queue ๊ฐ ์ถ๊ฐ
์๋ฐ์ ์ฐ์ ์์ ํ์ ๊ฐ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด
add(value)
๋๋
offer(value)
๋ผ๋ ๋ฉ์๋๋ฅผ ํ์ฉํ๋ฉด ๋ฉ๋๋ค.
add(value) ๋ฉ์๋์ ๊ฒฝ์ฐ ๋ง์ฝ ์ฝ์ ์ ์ฑ๊ณตํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ํ์ ์ฌ์ ๊ณต๊ฐ์ด ์์ด ์ฝ์ ์ ์คํจํ๋ฉด IllegalStateException์ ๋ฐ์์ํต๋๋ค. ์ด๋ Queue์ ๋์ผํฉ๋๋ค.
[์๋ฃ๊ตฌ์กฐ] ์ฐ์ ์์ ํ
(Priority Queue)๋?
๋ฌธ์ ํด์
์ฐ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ ํ์ด ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
โข
1.
์ ๋ ฌ์ด ๋์ผํ๋ค.
โข
2. 0๋ฒ์งธ ๊ฐ์ด k๋ณด๋ค ์ปค์ ธ์ผ ํ๋ค.
โฆ
3-1. ์์ ๊ฒฝ์ฐ, 0,1 ๋ฒ์งธ ์์์ ๋นผ๋ธ๋ค.
โฆ
3-2 ๋๊ฐ๋ฅผ ์๋๋ค. newFood = arr[0] + (arr[1]*2)
โฆ
3-3 ์์ ํ์๊ฐ 1 ์ฆ๊ฐํ๋ค mixCnt++;
โฆ
3-3. newFood ๋ ๋ค์ ์์ ๋ฐฐ์ด์ ๋ค์ด๊ฐ๋ค
โข
4. ๋ค์์ด์ ์์์ด ํ๋๋จ์๋๋ฐ๋ K๋ณด๋ค ์๋ค๋ฉด -1์ ๋ฐํํ๋ค.
์ฌ๊ธฐ์ ๊ฐ๋จํ ArrayList๋ก ํ ์ ์์ง ์์๊น? ํด์ ์๋ ์ฒ๋ผ ์ ๊ทผํ๋ค.
[Algorithm] ๋ ๋งต๊ฒ(Heap)
๋ฌธ์ ํด์
โข
์์๋ก ์ ๊ณต๋ ์์์ ์ดํด๋ณด๋ฉด {{0, 3}, {1, 9}, {2, 6}} ๊ฐ ์ ๋ ฅ๋ ๊ฒ์ธ๋ฐ ์ด ์์ ์ด ์ด๋ป๊ฒ ์ ๋ ฌ๋์ผ ๊ฐ์ฅ ๋น ๋ฅผ์ง๋ฅผ ๊ฒฐ์ ์ง๋ ๋ฌธ์ ์ด๋ค.
โข
์ด๊ฒ์ ๊ฐ ์์ ์ ์์ฒญ๋ถํฐ ์ข ๋ฃ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ์ ํ๊ท ์ ๊ฐ์ฅ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ชฉํ
โข
SJF(Shortest Job First) ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
โข
์ด๋ PriorityQueue๋ก ์ฐ์ ์์ ํ๊ฐ ์ฌ์ฉ๋๋ค.
โข
processQueue๋ผ๋ ๋ณ์๋ช ์ผ๋ก PriorityQueue๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ์์ ์ ๋ฃ๋๋ฐ, ์ฐ์ ์์ ํ๋ฅผ ํตํด jobs[i][j]์์ j=1์ ๊ฐ๋ค์ ๋ฐ๋ผ์ ์์๊ฐ๋ค์ด ์ ๋ฆฌํ๊ฒ์ผ๋ก ๋ณด์ฌ์ก๋ค.
โข
๋ฐ๋ผ์ ๊ฐ ์์ ์ 1์ธ๋ฑ์ค(๋๋ฒ์งธ๊ฐ)์ด ์์์์๋ก ์ ๋ ฌ๋ ํ์๊ฐ ์์๋ค.
[Algorithm] ๋์คํฌ ์ปจํธ๋กค๋ฌ(Heap)
๋ฌธ์ ํด์
โข
์ฐ์ ์ง๊ด์ ์ผ๋ก ๋ค๋ฆฌ์ ์ฐจ๋ค์ด ์ผ๋ ฌ๋ก ์ง๋๊ฐ๋ ๋ชจ์ต์ด ๊ทธ๋ ค์ง๋ฉด์
FIFO(First In First Out)์ ์๋ฃ๊ตฌ์กฐ
๊ฐ ํ์ํ๋ค๊ณ ํ๋จ๋์๋ค.
โฆ
Java์์๋ ํ๋ฅผ ํตํด์ ๊ตฌํ ํ ์ ์๋ค.
โฆ
[์๋ฃ๊ตฌ์กฐ] ํ(Queue)๋?
โข
ํ์ง๋ง ์๊ฐ๋ณด๋ค ๋จ์ํด ๋ณด์ด๋ ๋ฌธ์ ์ง๋ง, ๋ก์ง์ ์ค์ ๋ก ๊ตฌ์ฑ ํ ๋๋ ๋๋ฌด ๋ณต์กํ๋ค. ์๊ฐ๊ณผ ์ฝ๋๊ฐ ๋ฐ๋ก ๋ ธ๋ ๋๋์ด ๋ง์๋ค.
โข
๋ฌธ์ ๊ฐ ํผ๋์ ์ฃผ์๋ ๋ถ๋ถ์ ๊ณ์ํด์ ๋ฌธ์ ๋ฅผ ์ฝ๋ค๋ณด๋ ๋ค๋ฆฌ์ ๊ธธ์ด = ๊ฒฝ๊ณผ ์๊ฐ ์ธ๊ฒ์ ์๊ฒ ๋์๋ค.
โข
์๊ฐ๋ณด๋ค ํ๋ก์ธ์ค๋ ์ฝํ์ง๋ง ์ฝ๋๊ฐ ๊ธธ์ด์ ์ ์ ์ด ์๋ค. ์ด๋ฐ๊ฒ์ ์ ์ ๋ฆฌํ๋๊ฒ์ ์ต์ํด์ง๊ณ ์ถ๋ค.
โข
์ฐ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋ด๊ฐ ์๊ฐํ๋ ํ๋ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
๊ท์น ์ฐพ์๋ด๊ธฐ ์ฐ์ FIFO๊ฐ ํ์ํ๋ค ๋จผ์ ๋ค์ด๊ฐ์ ๋จผ์ ๋๊ฐ๋ค. -> Queue ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ์ต๋ 2๋๊ฐ ๋ค์ด๊ฐ์์๋๋ฐ truck_weights 2๊ฐ๊ฐ max_weight๋ณด๋ค ์ด๊ณผํ๋ฉด ์ง์ ์๋๊ธฐ๋๋ฌธ์ 1๊ฐ๋ง ๊ฐ์ผํ๋ค. 1๊ฐ๋ง ํต๊ณผํ ๋ 2์ด๊ฐ ์์๋๋ค.(time=๊ธธ์ด) ๊ทธ๋ผ ๊ทธ 1๊ฐ๋ง ํต๊ณผํ๊ณ , 2๋ฒ๊ณผ 3๋ฒ์ด ๋ง์ฝ max_weight๋ณด๋ค ์์ผ๋ฉด ๋๊ฐ๋ฅผ ํ๋ฒ์ ํต๊ณผ์์ผ๋ ๋๋ค. 2๊ฐ๊ฐ ํ๋ฒ์ ํต๊ณผ๋๋ค๋ฉด 1์ด๊ฐ ์์๋๋ค.(time +1) ์ด๊ฒ ํ์ดํ์ฒ๋ผ ๋ง์ฝ 10๋ฒํฐ๋ ๋ค๋ฆฌ์ 4๊ฐ ๋จผ์ ์ง์ ํ๊ณ 5๊ฐ ์ดํ์ ์ง์ ํด์ 2๋๊ฐ๋๋ฉด, 4๊ฐ๋จผ์ ๋น ์ง๋๊ฒ 1์ด, 5๊ฐ ๋น ์ง๋๊ฒ 1์ด, ๊ทธ์ดํ์ ๋ง์ฝ ๋ 4๋ผ๋ฉด 1์ด, ๋ง์ง๋ง์ 4๊ฐ ํ๋ฒ ๋ ๋น ์ ธ๋๊ฐ๋๋ฐ 1์ด
์ฐ์ Queue ๊ฐ์ฒด๋ ๋ค๋ฆฌ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๊ณ ๋ค๋ฆฌ์ ํธ๋ญ๋ค์ ์์๋๋ก ๋ฃ๊ณ ๋นผ๋๊ฒ์ ๋ง๋๋๊ฒ์ด ๊ธฐ๋ณธ ์กฐ๊ฑด์ผ๋ก Queue์ ๋ค์ด๊ฐ ์ ์๋ ์กฐ๊ฑด์ ๋ง๋ค์ด์ผ ํ๋ค. ๋ง์ฝ ๋ค๋ฆฌ์ ์ฒซ๋ฒ์จฐ์์๊ฐ ๋ค์ด๊ฐ๋ค. ๊ทธ๋ผ ๊ธฐ๋ณธ์ ์ผ๋ก 1์ด๊ฐ ์์นํ๊ณ length๋งํผ ์์นํ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ฒ์งธ ์์๊ฐ ๋ค์ด ๊ฐ ์ ์๋ค๋ฉด(๋์ ๋ํ๊ฐ์ด ์ต๋๋ณด๋ค์๋ค๋ฉด) ๋ง์ง๋ง์์์ ์๊ฐ๋ง ์ฌ๋ฉด๋๋ค. ๋ฐ๋ผ์ +1์ํ์์ ๊ธธ์ด๋งํผ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๊ฒ ๊ทธ 2๊ฐ๊ฐ ํต๊ณผํ๋ ์๊ฐ์ด๋ค.
โข
์ด๊ฒ ์๊ฐ์ ์ ๋ฆฌ๊ฐ ๋๋๊ฒ ๊ฐ์ง๋ง ์ฝ๋๋ก ์ฎ๊ธฐ๋๊ฒ์ด ์๊ฐ๋ณด๋ค ์ฝ์ง๋ ์์๋ค.
โฆ
๋ค๋ฅธ ๋ฌธ์ ํ์ด๋ฅผ ํตํด์ ํํธ๋ฅผ ์ป์ด๋ด๋ฉฐ ํ๊ฒ๋์๋ค.
โฆ
์ฐ์ ๋ด๊ฐ ๋ง๋ค์ด์ผ ํ๋ ๋ฐฐ์ด์ด ์ฌ๋ฌ๊ฐ์ธ๊ฒ๋ถํฐ ์ ๋ฆฌํ์ด์ผ ํ๋ค.
โช
๋๊ธฐํ, ๊ฑด๋๋ํ, ์๊ฐ์ฒดํฌ์ฉํ, ์๋ฃํ
โช
์ด๋ ๊ฒ ๊ฐ ๋ฐฐ์ด๋ค์ ๋ง๋ค๊ณ ์ค์ ๋ก ์์๋ฅผ ์ฎ๊ฒจ๊ฐ๋ ์ํฉ์ ์๋ฎฌ๋ ์ด์ ํ์ด์ผ ํ๋ค.
โช
๊ทธ๋ฆฌ๊ณ ๊ฑด๋ ๊ฐ๋ ์ํฉ์ ๋ํ ๋ก์ง์ ํ๋์ฉ ์์ฑํด๋๊ฐ์ผ๋ฉด ํ์ด์ ๋์ ํ ์ ์์์๊ฒ ๊ฐ๋ค.
[Algorithm] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ(Queue)
๋ฌธ์ ํด์
โข
์ฒ์ ๋ฌธ์ ๋ฅผ ๋ดค์๋ ํต์ฌ์ ์ค๋ณต์ ๊ฑฐ๋ก ๋ณด์๋ค.
โฆ
์ค๋ณต์ ํ์ฉํ์ง ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐ๋ ๊ฒ ๊ฐ์๋ค.
โฆ
์ค๋ณต์ ํ์ฉํ์ง ์๋ ์๋ฃ๊ตฌ์กฐ๋ Set์ด ์์ผ๋ฉฐ HashSet ๋๋ TreeSet์ผ๋ก ๊ตฌํ๋๋ค.
โฆ
ํ์ง๋ง ๋ชจ๋ ์ค๋ณต์ ์ ๊ฑฐํด๋ฒ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
public
class
Solution
{
public
int
[
]
Solution
(
int
[
]
arr
)
{
HashSet
<
Integer
>
arrSet
=
new
HashSet
<
>
(
)
;
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
arrSet
.
add
(
arr
[
i
]
)
;
}
return
arrSet
;
public
static
void
main
(
String
[
]
args
)
{
Solution
sol
=
new
Solution
(
)
;
int
[
]
arr
=
{
1
,
1
,
3
,
3
,
0
,
1
,
1
}
;
System
.
out
.
println
(
Arrays
.
toString
(
sol
.
Solution
(
arr
)
)
)
;
}
}
Java
๋ณต์ฌ
โข
ํ์ง๋ง HashSet์ ๋ชจ๋ ์ค๋ณต์ ์ ๊ฑฐํด๋ฒ๋ฆฐ๋ค. ๋ด๊ฐ์ํ๋ ๊ฒฐ๊ณผ์ ๋ฌ๋๋ค.
โข
๋ฌธ์ ์ ์๋์์๋
โฆ
{1,1,3,3,0,1,1}์์ ๊ฒฐ๊ณผ๊ฐ {1,3,0,1}์ด ์ ์ง๋์ด์ผ ํ๋ค.
โฆ
์ด๋ ๊ณง
์ฐ์๋ ์ค๋ณต๋ง ์ ๊ฑฐ
๋์ด์ผ ํ๋ค.
โฆ
๋จผ์ ๋ค์ด๊ฐ ์์์ ์ด์ ๋ค์ด๊ฐ ์์๊ฐ ๋ค์ด๊ฐ๋ ์์ ์,
๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ์ ๋ฃ์ง ์๋ ๊ฒ
์ ํ์ฉํ๋ฉด ๋ ๊ฒ์ผ๋ก ํ๋จ๋์๋ค.
โช
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack)์ด๋?
โข
๋ฐ๋ผ์ ํด๋น ๋ฌธ์ ๋ ์คํ(Stack) ์๋ฃ๊ตฌ์กฐ๋ฅผ ํ์ฉํ๊ณ ์กฐ๊ฑด๋ฌธ์ ํตํด์ ์ค๋ณต๋๋ ๊ฒ์ ํ๋ ค ๋ณด๋ธ๋ค๋ฉด ํ์ด๊ฐ ๋ ๊ฒ์ผ๋ก ํ๋จ๋์๋ค
๋ฌธ์ ํ์ด
[Algorithm] ๊ฐ์ ์ซ์๋ ์ซ์ด(Stack)
Stack?
Stack์ด๋?
"์คํ์ ์๋๋ค" ๋ผ๋ ํํ์ ์ค์ํ์์๋ ๊ฐ๊ฐํ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ํ์๋ ๋ค๋ฅด๊ฒ ๊ทธ๋๋ง ๊ธฐ์ตํ๊ธฐ๊ฐ ํธํ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ผ๋ก์ ํ(Queue)์๋ ๋ค๋ฅด๊ฒ ํ์ ์ ์ถ์ ํ์์ ๋๋ค. - LIFO(Last In First Out)๋์ค์ ๋ค์ด์ค๋ ๊ฐ์ด ๊ฐ์ฅ ๋จผ์ ๋๊ฐ๋ ๊ฒ์ผ๋ก,ํ์๋ ๋ค๋ฅด๊ฒ Index์ ๊ฐ๋ ์ด ์กด์ฌํฉ๋๋ค.
Java Development Kit Version 17 API Specification
declaration: module: java.base, package: java.util, class: Stack
Stack์ ์ ์ธ ๋ฐฉ๋ฒ
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack)์ด๋?
Queue?
Queue๋?
์๋ฃ๊ตฌ์กฐ์ ์ผ์ข ์ผ๋ก์ ๋ฆฌ์คํธ์ฑ์ ์๋ฃ๋ ๋์ด๋๋ ์๋ฃ, ์ํ์ ์ธ ์๋ฃ, ๋๊ธฐ์ด ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
Queue๋ ์ ์ ์ ์ถ์ ํ์์ด๋ฉฐ, "๋จผ์ ๋ค์ด์จ ๋์ด ๋จผ์ ๋๊ฐ๋ค" ๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.FIFO(First In First Out) ์ด๋ฐ ์์ผ๋ก ํํํ๊ธฐ๋ ํฉ๋๋ค.
Queue๋ ํน์ดํ๊ฒย
contains() ํจ์
๋ฅผ ํตํด ์ด๋ ํ ๊ฐ์ด ํฌํจ๋์ด์๋์ง๋ ํ์ธํ ์ ์์ง๋ง Index์ ๊ฐ๋ ์ด ์์ด์ ์ด๋ ํ ๊ฐ์ด ๋ช ๋ฒ์งธ์ ์๋์ง๋ ์ ์ ์์ต๋๋ค.
Java Development Kit Version 17 API Specification
declaration: module: java.base, package: java.util, interface: Queue
Queue์ ์ ์ธ ๋ฐฉ๋ฒ
[์๋ฃ๊ตฌ์กฐ] ํ(Queue)๋?
๋ฌธ์ ํด์
์ฐธ๊ฐ์๋ ์์ฃผ์๋ณด๋ค -1 ์์๊ฒ์ด๋ผ๋ ๊ฒ์์ ์ด๊ฑด ๋ฌด์กฐ๊ฑด ํฐ๊ฒ์์ ์์๊ฒ์ ๋นผ๋ค๋ณด๋ฉด ๋จ๋๊ฒ์ ์ถ๋ ฅํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊ฒ์ผ๋ก ๊ณง๋ฐ๋ก ์๊ฐ์ด ๋์๋ค.
์ด์ ๋ฌธ์ ์์ ํด์๋งต์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํด์๋งต์ ๊ฐ ๋ฐฐ์ด ์์๋ค์ ์ ์ฅํด์, ํฐ ๋งต์์ ์์ ๋งต์ ์์๋ค์ ํ๋์ฉ ๊ฒ์ํด์ ๋นผ๊ธฐ๋ก ํ๋ค.
๋ฌธ์ ํ์ด
์ฒ์์ ๋๋ช ์ด์ธ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ์ ๋งคํ๋ค. ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐธ๊ณ ํ๋ฉด์ Map์ ๋ฉ์๋ ์ค
getOrDefault()
๋ผ๋ ๋ฉ์๋๋ฅผ ํ์ธํ๊ฒ ๋์๋ค.
ํค๊ฐ ์กด์ฌํ๋ค๋ฉด ์ฐพ๋ ํค์ ๊ฐ์ ๋ฐํํ๊ณ ์๋ค๋ฉด ๊ธฐ๋ณธ ๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋๋ก
[Algorithm] ์์ฃผํ์ง ๋ชปํ ์ ์(ํด์๋งต - ๋์ผ๊ฐ ๋น๊ต, ๋์ผํ ๊ฐ์ ๋ํ ๋ฌธ์ )
Load more