Strong Root

난이도 

 

문제를 보시려면 여기를 클릭

 

 

 

힌트

풀이는 어렵지 않은데 문제가 매우 아름답네요. 레이져로 자르는 것을 괄호 여닫는 것으로 모델링하다니 ㄷㄷ

 

1. 귀찮은 녀석들은 replaceAll 로 치환해버리자 (특수문자 escape 주의)

2. 단순 count 를 위한 stack 이므로 int 변수만으로도 충분함. 굳이 Stack 자료구조 불필요.

 

 

 

이하는 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Solution {
    public int solution(String arrangement) {
        int stack = 0;
        int answer = 0;
 
        String replacedArrangement = arrangement.replaceAll("\\(\\)""L"); // escape (, )
 
        for (int i = 0; i < replacedArrangement.length(); i++) {
            char c = replacedArrangement.charAt(i);
 
            if (c == '(') {
                stack++;
                answer++;
            } else if (c == ')') {
                stack--;
            } else if (c == 'L') {
                answer += stack;
            }
        }
 
        return answer;
    }
}
cs