-
[묘공단] 코딩 테스트 합격자 되기 2주차[묘공단] 코딩 테스트 합격자 되기 책 정리 2024. 4. 21. 23:38
이 글은 책 코딩테스트 합격자 되기 - 자바편 (골든래빗 - 김희성저)의 내용이 포함되어있습니다.
06 스택
- 스택의 어원은 쌓는다 이다
- LIFO 구조 이다 (후입 선출)
- Vector 클래스를 상속받기에 Thread-Safe하다
- java.util.Stack 클래스를 통해 동작을 제공한다.스택의 ADT 정의
ADT란? Abstract Data Type(추상자료형)으로 인터페이스만 있고 실제로 구현은 되지 않은 자료형을 말한다.
일종의 '자료형의 설계도'라고 생각하면 된다.※ 언어에 따라 표준라이브러리에서 스택 제공 여부는 다르다. 자바는 컬렉션 프레임워크에서 Stack 클래스를 제공하기 때문에 Stack클래스의 객체를 생성해서 사용하면 된다.
Stack 클래스 사용하기
Push()
Stack<Integer> stack = new Stack<>(); //스택 객체 생성 stack.push(1); stack.push(2); stack.push(3); stack.push(4); // [1, 2, 3]
Pop()
System.out.println(stack.pop()); // 3 System.out.println(stack); // [1, 2] System.out.println(stack.pop()); // 2 System.out.println(stack.pop()); // 1 System.out.println(stack); // []
Peek()
- 최상단 값을 확인 만하고 스택에서 제거하고 싶지 않은 경우
- peek() 메서드를 호출하면, 스택의 최상단에 있는 데이터를 확인만 하고 스택에서 제거하지 않게 됨Stack<Number> stack = new Stack<>(); stack.push(1); stack.push(2); stack.push(3); // 마지막에 넣은 값만 확인하고 제거하지는 않는다 System.out.println(stack.peek()); // 3 System.out.println(stack); // [1, 2, 3]
isEmpty()
- 스택에 값이 존재하지 않는 상황에서 pop이나 peek을 하게 되면 EmptyStackException 예외가 발생하게 된다. 따라서 메서드 호출 시에 데이터가 존재하는지 확인해야 한다.
Stack<Number> stack = new Stack<>(); stack.push(1); // 스택이 비어있지 않다면 안전하게 요소를 제거 if(!stack.isEmpty() { stack.pop(); }
search()
- 스택에 특정 데이터가 존재하는지 확인 하기 위해 사용함.
- 리스트의 indexOf() 와 비슷하다.
- top에서 부터 얼마나 떨어져있는지 확인해준다.
- 존재하지 않는 다면 -1을 반환한다.Stack<String> stack = new Stack<>(); stack.push("HI"); stack.push("HELLO"); stack.push("EARTH"); stack.push("SINGLE"); stack.push("BUS"); System.out.println(stack); // [HI, HELLO, EARTH, SINGLE, BUS] // 이때의 인덱스는 배열처럼 0부터 시작하는 기준이 아닌, 몇번째로 꺼내지는지에 대한 인덱스 표시이다. System.out.println(stack.search("BUS")); // 1 → 첫번째로 꺼내질 것임 System.out.println(stack.search("HI")); // 5
size()
- stack 클래스는 Vector클래스를 상속받고 Vector 클래스는 List 인터페이스를 구현하므로 size() 메서드를 사용할 수 있다.
출처
https://goldenrabbit.co.kr/product/javapass/
[되기] 코딩 테스트 합격자 되기(자바 편) - 골든래빗
신입 사원 코딩 테스트를 준비하고 계신가요? 코딩 테스트는 문제만 열심히 푼다고 통과할 수 없습니다. 시험은 전략적으로 준비해야 합니다. 《코딩 테스트 합격자 되기》(자바 편)은 신입 사
goldenrabbit.co.kr
'[묘공단] 코딩 테스트 합격자 되기 책 정리' 카테고리의 다른 글
[묘공단] 코딩 테스트 합격자 되기 5주차 (0) 2024.05.22 [묘공단] 코딩 테스트 합격자 되기 4주차 - 트리 (1) 2024.05.07 [묘공단] 코딩 테스트 합격자 되기 4주차 (0) 2024.05.06 [묘공단] 코딩 테스트 합격자 되기 3주차 (0) 2024.04.29 [묘공단]코딩 테스트 합격자 되기 1주차 (0) 2024.04.14