๋ฐ์ํ
โจStack ์ด๋ ๋ฌด์์ธ๊ฐ์?
์คํ(stack)์ ์ ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ๋์ด ๊ตฌ์กฐ์ด๋ค. ์ฌ์ ์ ์ ์๋ '์๋ค' ์์์ ๋ฌผ๊ฑด์ ์์ ์ฌ๋ฆฌ๋ฏ์ด ๋ฐ์ดํฐ๋ฅผ ์๋ ๊ตฌ์กฐ๋ก ๊ทธ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์ธ์ ๋ ๋ชฉ๋ก์ ๋์์๋ง ์ผ์ด๋๋ค.
์๋ฃ๋ฅผ ๋ฃ๋๊ฒ์ '๋ฐ์ด๋ฃ๋๋ค' ํ์ฌ push๋ผ๊ณ ํ๊ณ ๋ฐ๋๋ก ๋ฃ์ด๋ ์๋ฃ๋ฅผ ๊บผ๋ด๋ ๊ฒ์ pop์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๋ ๊บผ๋ด์ง๋ ์๋ฃ๋ ๊ฐ์ฅ ์ต๊ทผ์ ํธ์ฌํ ์๋ฃ๋ถํฐ ๋์ค๊ฒ ๋๋ค. ์ฆ, ๋์ค์ ๋ค์ด๊ฐ ๊ฒ์ด ๋จผ์ ๋์ค๋ LIFO(Last In First Out)์ ํํ๋ฅผ ๋๊ณ ์๋ค.
โจStack ์ ์ธ
import java.util.Stack;
Stack<Integer>stack = new Stack<Integer>(); // Integerํ์
์ ์ธ
Stack<Integer>stack = new Stack<>(); // ๋ค์ ํ์
์๋ต ๊ฐ๋ฅ
Stack<Character>stack = new Stack<>(); // Char ํ์
์ ์ธ
Stack<String>stack = new Stack<>(); // String ํ์
์ ์ธ
๋ฉ์๋ | ์ค๋ช |
stack.push(1); | ์คํ์ ๊ฐ 1 ์ถ๊ฐ |
stack.size(); | ์คํ์ ํฌ๊ธฐ ์ถ๋ ฅ |
stack.empty(); | ์คํ์ด ๋น์ด ์์ผ๋ฉด true, ๋น์ด ์์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ |
stack.peek(); | ์คํ์ ์ ์ผ ์๋จ์ ์๋(๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์๋ฅผ ๋ฐํ |
stack.pop(); | ์คํ์ ์ ์ผ ์๋จ์ ์๋(๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์๋ฅผ ๋ฐํํ, ํด๋น ์์๋ฅผ ์คํ์์ ์ ๊ฑฐํจ. (๊ฐ์ remove ํ ๋ pop ์ ์ฌ์ฉํ๋ฉด๋๋ค.) |
stack.search(1); | ์คํ์์ ์ ๋ฌ๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ์์น์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ ์ด๋ ์ธ๋ฑ์ค๋ ์ ์ผ ์๋จ์ ์๋(๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋) ์์์ ์์น๋ถํฐ 0์ด ์๋ 1๋ถํฐ ์์ํจ. |
stack.contains(1); | ์คํ์ 1์ด ์์ผ๋ฉด true, ์์ผ๋ฉด false ๋ฅผ ๋ฐํ |
โจStack ์์
import java.util.Stack;
public class Solution {
public static void main (String[] args) {
Stack<Integer>stack = new Stack<>();
// ๊ฐ๋ฃ๊ธฐ
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
// ์คํ ํฌ๊ธฐ ์ถ๋ ฅ
System.out.println(stack.size()); // 4
// ๋น์ด ์์ผ๋ฉด true, ๋น์ด ์์ง ์์ผ๋ฉด false
System.out.println(stack.empty()); // false
// ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋ ์์ ๋ฐํ
System.out.println(stack.peek()); // 4
System.out.println(stack); // [1, 2, 3, 4]
// ๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋ ์์ ๋ฐํํ ํด๋น์์ ์ ๊ฑฐ
System.out.println(stack.pop()); // 4
System.out.println(stack); // [1, 2, 3]
/*
์คํ์์ ์ ๋ฌ๋ ๊ฐ์ด ์กด์ฌํ๋ ์์น์ ์ธ๋ฑ์ค ๋ฐํ
(๋ง์ง๋ง์ผ๋ก ์ ์ฅ๋ ์์์ ์์น์์ 0์ด ์๋ 1๋ถํฐ ์์) ๊ฐ์ด ์์ผ๋ฉด -1 ๋ฐํ
*/
System.out.println(stack.search(4)); // -1
System.out.println(stack.search(3)); // 1
System.out.println(stack.search(2)); // 2
// ์คํ์ ์ ๋ฌ๋ ๊ฐ์ด ์์ผ๋ฉด true, ์์ผ๋ฉด false
System.out.println(stack.contains(4)); // false
System.out.println(stack.contains(3)); // true
}
}
300x250
'๊ฐ๋ฐ์ธ์ด > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] indexOf() ํน์ ๋ฌธ์ ์์น ์ฐพ๋ ๋ฐฉ๋ฒ (1) | 2022.04.25 |
---|---|
[Java] Queue ์ธํฐํ์ด์ค ์ค๋ช ๋ฐ ์์ (0) | 2022.04.23 |
[Java] HashMap (key ๊ฐ ๊ฐ์ ธ์ค๊ธฐ) (0) | 2022.04.22 |
[Java] ์ ๊ท ํํ์ ์ฌ์ฉ๋ฐฉ๋ฒ (Pattern, Matcher) (0) | 2022.04.18 |
[Java] ์๋ฐ ์ ๊ทํํ์ ๋ชจ์ (0) | 2022.04.18 |