inblog logo
|
stupefyee
    알고리즘문제풀기

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

    프로그래머스(120853) {Stack}
    Stupefyee's avatar
    Stupefyee
    Dec 10, 2024
    [JAVA 문제 풀이] 40. 컨트롤 제트
    Contents
    내가 작성한 코드다른 사람의 코드Stack?
    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
    Contents
    내가 작성한 코드다른 사람의 코드Stack?

    stupefyee

    RSS·Powered by Inblog