게하! 개하! (게임도 하고 개발도 하고)

[프로그래머스] 쇠막대기 - java 본문

알고리즘/[2020] 프로그래머스

[프로그래머스] 쇠막대기 - java

Sorrel 2020. 4. 14. 13:41
import java.util.ArrayList;
class Solution {
    public int solution(String arrangement) {
        int answer = 0;
        //()(((()())(())()))(())
        //()레이저구분
        //1(((11)(1)1))(1)
        //1을 만나면 그 앞에 ( 갯수 세기, 막대기의 앞부분
        // ) 만나면 +1 해주기 , 막대기의 뒷부분
        
        arrangement = arrangement.replace("()","1");
        
        ArrayList<Character> copy = new ArrayList<Character>();
        for(int i = 0; i<arrangement.length(); i++){
            copy.add(arrangement.charAt(i));
        }
        
        ArrayList<Character> stk = new ArrayList<Character>();
        for(int i = 0 ; i< copy.size(); i++){
            if(copy.get(i)=='('){ //""아닌 ''사용하기 -> 오류의 이유
                stk.add('(');
            }
            else if(copy.get(i)==')'){
                stk.remove(stk.size()-1);
                answer++;
            }
            else if(copy.get(i)=='1'){
                answer+=stk.size();
            }
        }
        return answer;
    }
}
0 Comments
댓글쓰기 폼