본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

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

by 코딩하는 흰둥이 2023. 3. 13.
반응형

 

  • 내 풀이
class Solution {
    public int solution(String s) {
        int answer = 0;
    
    // 매개변수를 공백으로 잘라서 배열에 넣어준다
        String[] check = s.split(" ");
        
        // 이전 값을 넣기 위한 변수
        int num = 0;
	
        for (int i = 0; i < check.length; i++) {
        
        // Z문자열이 나오면 이전 값을 빼준다
        // 제한사항으로 첫 매개변수에는 Z가 들어가지 않는다.
            if ("Z".equals(""+check[i])){
               answer -= num;
            }else {
                answer += Integer.parseInt(check[i]);
                num = Integer.parseInt(check[i]);
            }
        }
        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;
    }
}

많은 분들이 Stack을 사용하셨다

 

  • Stack 참고
        Stack<Integer> test = new Stack<>();

        test.push(0);
        test.push(1);
        test.push(2);
        test.push(3);

        System.err.println(test);
        // [0, 1, 2, 3] 으로 출력
        
        test.pop(); 
        System.err.println(test);
        // [0, 1, 2] 으로 제일 마지막 숫자가 제거 된다.

 

댓글