프로그래머스 쇠막대기(arrangement) 정답 코드
뿌리튼튼 CS/Algorithm2019. 4. 15. 17:44
난이도 ★★☆☆☆
힌트
풀이는 어렵지 않은데 문제가 매우 아름답네요. 레이져로 자르는 것을 괄호 여닫는 것으로 모델링하다니 ㄷㄷ
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 |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
프로그래머스 타겟 넘버 정답 코드 (0) | 2019.04.16 |
---|---|
프로그래머스 프린터(priorities) 정답 코드 (0) | 2019.04.16 |
프로그래머스 H-Index(citations) 정답 코드 (0) | 2019.04.15 |
프로그래머스 가장 큰 수(numbers) 정답 코드 (0) | 2019.04.15 |
프로그래머스 K번째수(commands) 정답 코드 (1) | 2019.04.15 |