컨트롤 제트

문제


나의 생각

" "띄어쓰기 기준으로 문자열을 문자배열로 변경하고 그 배열을 기준으로 값들을 더하는 for문을 실행.

"Z"가 나오면 앞에서 더해준 값을 다시 빼주는 방식으로 접근. 

"Z"가 index 0에서 나오면 에러가 나므로 index가 0 일때는 0을 빼주는 방식으로 추가.

 


나의 답안

public static int solution(String s) {
    int answer = 0;

    String[] a = s.split(" ");

    for (int i = 0; i < a.length; i++) {
        if (a[i].equals("Z")) {
            if (i == 0) {
                answer += 0;
            } else {
                answer -= Integer.parseInt(a[i - 1]);
            }
        } else {
            answer += Integer.parseInt(a[i]);
        }
    }

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

'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글

문자열 계산하기  (0) 2023.03.06
잘라서 배열로 저장하기  (0) 2023.03.06
영어가 싫어요  (0) 2023.03.02
공 던지기  (0) 2023.03.02
소인수분해  (0) 2023.03.02