본문 바로가기
알고리즘/프로그래머스

표편집 (자바)

by 김어찐 2021. 9. 12.
728x90
package prog;

import java.util.Arrays;
import java.util.LinkedList;
import java.util.Stack;

public class 표편집 {
    public static void main(String[] args) {
        Solution_표편집 s= new Solution_표편집();
        System.out.println(s.solution(8,	2,new String[] {"D 2","C","U 3","C","D 4","C","U 2","Z","Z"}));
        System.out.println(s.solution(8,	2,new String[] {"D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"}));
    }
}

class Solution_표편집{
    public String solution(int n, int k, String[] cmd) {

        int tableSize=n;
        Stack<Integer> stack = new Stack<>();

        for (String oper : cmd) {
            String[] operList = oper.split(" ");

            if(operList[0].equals("U")){
                k-=Integer.parseInt(operList[1]);
            }
            else if(operList[0].equals("D")){
                k+=Integer.parseInt(operList[1]);
            }
            else if(operList[0].equals("C")){
                stack.add(k);
                tableSize--;
                if (k ==tableSize ) {
                    k--;
                }
            }
            else{
                int pos = stack.pop();
                if(pos<=k)k++;
                tableSize++;
            }


        }
        StringBuilder answer= new StringBuilder();
        for (int i = 0; i < tableSize; i++) {
            answer.append('O');
        }
        while (!stack.isEmpty()) {
            int pos = stack.pop();
            answer.insert(pos, 'X');
        }
        return answer.toString();
    }
}
728x90

'알고리즘 > 프로그래머스' 카테고리의 다른 글

5주차 모음사전 (자바)  (0) 2021.09.14
뉴스 클러스터링 (자바)  (0) 2021.09.12
짝지어 제거하기 (자바)  (0) 2021.09.09
더 맵게 (자바)  (0) 2021.09.08
타겟넘버 (자바)  (0) 2021.09.08