๐Ÿ’ก (Java) Stack ์ •๋ฆฌ

๋ฐ•ํ˜„์•„ยท2024๋…„ 10์›” 26์ผ
0

๊ธฐ์ดˆ

๋ชฉ๋ก ๋ณด๊ธฐ
20/31

๐Ÿ’ก Stack ์ •๋ฆฌ

Java์—์„œ Stack ํด๋ž˜์Šค๋Š” LIFO(Last-In, First-Out) ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€๋œ ์š”์†Œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ œ๊ฑฐ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. Stack ํด๋ž˜์Šค๋Š” java.util ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
    
        // ์Šคํƒ ์ƒ์„ฑ
        Stack<Integer> stack = new Stack<>();

        // ์š”์†Œ ์ถ”๊ฐ€(push)
        stack.push(10);
        stack.push(20);
        stack.push(30);

        System.out.println("์Šคํƒ: " + stack); // [10, 20, 30]

        // ๋งจ ์œ„ ์š”์†Œ ํ™•์ธ(peek)
        int top = stack.peek();
        System.out.println("๋งจ ์œ„ ์š”์†Œ: " + top); // 30

        // ๋งจ ์œ„ ์š”์†Œ ์ œ๊ฑฐ(pop)
        int removedElement = stack.pop();
        System.out.println("์ œ๊ฑฐ๋œ ์š”์†Œ: " + removedElement); // 30
        System.out.println("์Šคํƒ (pop ํ›„): " + stack); // [10, 20]

        // ์Šคํƒ์ด ๋น„์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
        boolean isEmpty = stack.isEmpty();
        System.out.println("์Šคํƒ์ด ๋น„์–ด ์žˆ์Šต๋‹ˆ๊นŒ? " + isEmpty); // false

        // ์Šคํƒ์—์„œ ์š”์†Œ ์ฐพ๊ธฐ (1-based index ๋ฐ˜ํ™˜)
        int position = stack.search(10);
        System.out.println("10์˜ ์œ„์น˜: " + position); // 2
    }
}

0๊ฐœ์˜ ๋Œ“๊ธ€