โ Stack
Stack = '์๋ค' , '๋๋ฏธ'
์ฆ, ์์์ ๋ฌผ๊ฑด์ ์์ ์ฌ๋ฆฌ๋ฏ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
๊ฐ์ฅ ํฐ ํน์ง์ ๋์ค์ ๋ค์ด๊ฐ๊ฒ์ด ๋จผ์ ๋์ค๋ ( Last In First Out )์ ํํ๋ฅผ ๋ฌ๋ค๋ ๊ฒ์ด๋ค.
์ด ๋ฐฉ์์ ๊ฐ์ง ์๋ฃ๊ตฌ์กฐ์ธ Stack์ ํ์ฉํ์ฌ ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ฌ์ฉ์ import java.util.Stack ์ ์ํฌํธํด์ผํ๋ค.
Stack์ ํน์ง
1. ๋จผ์ ๋ค์ด๊ฐ ์๋ฃ๊ฐ ๋์ค์ ๋์ด ( LIFO )
2. ์์คํ ํดํน์์ ๋ฒํผํ๋ก์ฐ ์ทจ์ฝ์ ์ ์ด์ฉํ ๊ณต๊ฒฉ์ ํ ๋ ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์์ญ์์ ํจ
3. ์ธํฐ๋ฝํธ ์ฒ๋ฆฌ, ์์์ ๊ณ์ฐ, ์๋ธ๋ฃจํด์ ๋ณต๊ท ๋ฒ์ง ์ ์ฅ ๋ฑ์ ์ฐ์
4. ๊ทธ๋ํ์ ๊น์ด ์ฐ์ ํ์(DFS)์์ ์ฌ์ฉ
5. ์ฌ๊ท์ (Recursion) ํจ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉ
Stack ์ฌ์ฉ๋ฒ
Stack ์ ์ธ
import java.util.Stack;
Stack<Integer> stack = new Stack<>(); // intํ ์คํ ์ ์ธ
Stack<String> stack = newStack<>(); // charํ ์คํ ์ ์ธ
Stack ๊ฐ ์ถ๊ฐ
Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
Stack์ ๊ฐ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ฉด push(value)๋ฉ์๋๋ฅผ ํ์ฉ.
Stack์ ์ ์์ ์ ๊ฐ์ด ๊ฐ์ ๊ณ์ํด์ ์ถ๊ฐํ๋๊ฐ๋ฉด ์๋ ๊ทธ๋ฆผ์ฒ๋ผ ๋ฐ์ดํฐ๊ฐ ์์ด๊ฒ ๋๋ค.
Stack ๊ฐ ์ญ์
Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop(); // stack์ ๊ฐ ์ ๊ฑฐ
stack.clear(); // stack์ ์ ์ฒด ๊ฐ ์ ๊ฑฐ (์ด๊ธฐํ)
์คํ์์ ๊ฐ์ ์ ๊ฑฐํ๊ณ ์ถ๋ค๋ฉด pop()๋ฉ์๋ ์ฌ์ฉ.
pop์ ํ๋ฉด ๊ฐ์ฅ ์์ชฝ์ ์๋ ์์์ ๊ฐ์ด ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ ๊ฑฐ๋๋ค.
์คํ์ ๊ฐ์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ ์ถ๋ค๋ฉด clear()๋ฉ์๋ ์ฌ์ฉ
Stack์ ๊ฐ์ฅ ์๋จ ๊ฐ ์ถ๋ ฅ
Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.peek(); // stack์ ๊ฐ์ฅ ์๋จ ๊ฐ ์ถ๋ ฅ
์คํ์ ๊ฐ์ฅ ์์ ์๋ ๊ฐ์ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด peek() ์ฌ์ฉ
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ค์ด๊ฐ ๊ฐ์ด ์ถ๋ ฅ๋๋ค.
Stack์ ์ฌ๋ฌ๊ฐ์ง ๋ฉ์๋
Stack<Integer> stack=new Stack<>();
stack.push(1);
stack.push(2);
stack.size(); // stack์ ํฌ๊ธฐ ์ถ๋ ฅ : 2
stack.empty(); // stack์ด ๋น์ด์๋์ง ํ์ธ ( ๋น์ด์๋ค๋ฉด true )
stack.contains(1) // stack์ 1์ด ์๋์ง ํ์ธ ( ์๋ค๋ฉด true )
'๐ ์ฝ๋ฉํ ์คํธ > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA][์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ( ์ ํ ์ฝ์ ๋ฒ๋ธ ) (0) | 2022.11.07 |
---|---|
[JAVA] Queue ์ ๋ฆฌ (0) | 2022.11.05 |
[JAVA] BigDecimal ์ ๋ฆฌ (0) | 2022.11.05 |
[JAVA][์๊ณ ๋ฆฌ์ฆ] DFS ( ์ด์ง ํธ๋ฆฌ ์ํ ) (0) | 2022.11.04 |
[JAVA] ์ฌ๊ทํจ์ ( ๋ฉ๋ชจ์ด์ ์ด์ ) (0) | 2022.11.03 |