[JAVA 문제 풀이] 40. 컨트롤 제트

프로그래머스(120853) {Stack}
Stupefyee's avatar
Dec 10, 2024
[JAVA 문제 풀이] 40. 컨트롤 제트
notion image
notion image

내가 작성한 코드

💡
class Solution { public int solution(String s) { String[] arr = s.split(" "); // 공백을 기준으로 배열화 int answer = 0; // 더한 값을 담을 변수 for(int i = 0; i < arr.length; i++) { // arr 길이만큼 반복 if(arr[i].equals("Z")) { // arr[i]가 Z면 answer -= Integer.parseInt(arr[i-1]); // 전 인덱스 값 불러와서 빼기 } else { // 아니라면 answer += Integer.parseInt(arr[i]); // 지금 인덱스 값 더하기 } } return answer; } }

다른 사람의 코드

💡
class Solution { public int solution(String s) { int answer = 0; Stack<Integer> stack = new Stack<>(); // int Stack 생성 for (String w : s.split(" ")) { // 바로 배열화해서 if (w.equals("Z")) { // Z 면 stack.pop(); // 없애기(안넣기) } else { // Z가 아니면 stack.push(Integer.parseInt(w)); // Stack에 int로 변환 후 추가 } } // Stack에 추가된 int 전부 더하기 for (int i : stack) { answer += i; } return answer; } }
 

Stack?

1. 개요

  • 위치: java.util 패키지
  • 구조: LIFO (Last In, First Out)
  • 특징:
    • Vector를 기반으로 구현됨.
    • Thread-safe(동기화 지원).
    • 최근에는 Deque(ArrayDeque) 사용이 권장됨.

2. 주요 메서드

메서드
설명
사용 예제
push(E item)
스택에 데이터 추가
stack.push("A");
pop()
맨 위 데이터를 제거하고 반환
String top = stack.pop();
peek()
맨 위 데이터를 제거하지 않고 반환
String top = stack.peek();
isEmpty()
스택이 비었는지 확인
boolean empty = stack.isEmpty();
search(Object o)
특정 요소의 위치 반환 (1부터 시작)
int pos = stack.search("A");
Share article

stupefyee