본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - 컨트롤 제트

https://school.programmers.co.kr/learn/courses/30/lessons/120853

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

정답 

 

import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        List<Integer> numbers = new ArrayList<>();
        StringTokenizer st = new StringTokenizer(s, " ");
        
        while (st.hasMoreTokens()) {
            String token = st.nextToken();
            if (token.equals("Z")) {
                if (!numbers.isEmpty()) {
                    answer -= numbers.remove(numbers.size() - 1);
                }
            } else {
                numbers.add(Integer.parseInt(token));
                answer += Integer.parseInt(token);
            }
        }
        return answer;
    }
}

 

 

다른 사람의 풀이 

 

import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();

        for (String w : s.split(" ")) {
            if (w.equals("Z")) {
                stack.pop();
            } else {
                stack.push(Integer.parseInt(w));
            }
        }
        for (int i : stack) {
            answer += i;
        }
        return answer;
    }
}