[프로그래머스] Level0. 컨트롤 제트

Benjamin·2023년 2월 5일
0

프로그래머스

목록 보기
7/58

내 풀이

class Solution {
    public int solution(String s) {
        int answer = 0;
        String[] arr = s.split(" ");
        for(int i=0; i<arr.length-1; i++) {
            if(arr[i+1].equals("Z")) {
                i++;
                continue;
            }
            else answer += Integer.parseInt(arr[i]);
        }
        if(!arr[arr.length-1].equals("Z")) answer += Integer.parseInt(arr[arr.length-1]);
        return answer;
    }
}

내 코드가 그렇게 나쁜것같진않지만, 코딩할때마다 내가 사용하는 것들이 한정적이라는 생각이 많이 들기때문에, 다른 풀이를 익히려고한다.

다른 풀이

stack 자료구조를 이용한 풀이가있다.
웹 뒤로가기, 역순문자열, 실행취소.. 같은 것에 선입후출의 스택을 활용할 수 있다.

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;
    }
}

0개의 댓글