[Programmers] 괄호 회전하기
2023. 8. 9. 12:05ㆍComputer Sciences/Problem Solve
https://school.programmers.co.kr/learn/courses/30/lessons/76502
문제 설명
올바른 괄호 문제의 응용 버전이다. 이 문제 또한 스택을 활용할 줄 알고 앞 문제를 풀어봤다면 금방 해결할 수 있다. 문자열을 회전하라고 하는데 간단하게 하면 맨 앞 문자를 떼서 맨 뒤로 붙이면 된다.
코드
import java.util.Stack;
class Solution {
public int solution(String s) {
int answer = 0;
for (int i = 0; i < s.length(); i++) {
Stack<Character> stack = new Stack<>();
char first = s.charAt(0);
s = s.substring(1) + first;
for (int j = 0; j < s.length(); j++) {
char ch = s.charAt(j);
switch (ch) {
case ']':
if (!stack.isEmpty() && stack.peek() == '[') {
stack.pop();
} else {
stack.push(ch);
}
break;
case ')':
if (!stack.isEmpty() && stack.peek() == '(') {
stack.pop();
} else {
stack.push(ch);
}
break;
case '}':
if (!stack.isEmpty() && stack.peek() == '{') {
stack.pop();
} else {
stack.push(ch);
}
break;
default:
stack.push(ch);
break;
}
}
if (stack.isEmpty()) {
answer++;
}
}
return answer;
}
}
'Computer Sciences > Problem Solve' 카테고리의 다른 글
[Programmers] H-Index (0) | 2023.08.10 |
---|---|
[Programmers] n^2 배열 자르기 (0) | 2023.08.10 |
[Programmers] 귤 고르기 (0) | 2023.08.09 |
[Programmers] 멀리 뛰기 (0) | 2023.08.08 |
[Programmers] N개의 최소공배수 (0) | 2023.08.08 |