java/Exam

프로그래머스 : 컨트롤 제트

_Jay 2023. 1. 3. 14:47

package practice;


import java.util.ArrayList;
import java.util.Arrays;

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

        ArrayList<String> list = new ArrayList<>(Arrays.asList(s.split(" ")));

        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).equals("Z")) {
                list.remove(i);
                list.set(i-1,"0");
            }
        }

        System.out.println(list);

        Integer[] answerArr = list.stream().mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new);

        for (Integer integer : answerArr) {
            answer+=integer;
        }
        return answer;
    }
    // 자료구조 스택을 이용해서 풀이를 나중에 다시 해보자.
}
public class Programmers {

    public static void main(String[] args) {


        String s = "10 Z 20 Z";

        System.out.println(new Solution().solution(s));

    }

}




 

자료구조 스택을 활용하여 다시 풀이 해보았다. 
링크드 리스트는 스택을 구현한 클래스 이기 때문에 가능. 

package practice;

import java.util.LinkedList;

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

        String[] strArr = s.split(" ");
        LinkedList<String> list = new LinkedList<>();

        for (int i = 0; i < strArr.length ; i++) {
            if (strArr[i].equals("Z")) {
                list.pop();
            }else{
                list.push(strArr[i]);
            }
        }
        System.out.println(list);

        for (String s1 : list) {
            answer+=Integer.parseInt(s1);
        }

        return answer;
    }
}
public class Programmers {

    public static void main(String[] args) {


        String s = "1 2 Z 3";

        System.out.println(new Solution().solution(s));

    }

}