문제
https://school.programmers.co.kr/learn/courses/30/lessons/76502#
풀이
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
StringBuilder sb = new StringBuilder(s);
for(int i=0; i<s.length(); i++){
if(isValid(sb.toString())){
answer++;
{
sb.append(sb.charAt(0));
sb.deleteCharAt(0);
}
return answer;
}
public boolean isValid(String s){
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == '[' || c == '{' || c == '('){
stack.add(c);
}
else if(stack.isEmpty()){
return false;
}
else{
char temp = stack.pop();
if(!((c == ']' && temp == '[') || (c == '}' && temp == '{') ||(c == ')' && temp == '('))){
return false;
}
}
}
return stack.isEmpty();
}
}
'알고리즘 > 알고리즘 문제풀이' 카테고리의 다른 글
H-Index 구하기 문제 (0) | 2025.04.23 |
---|---|
슬라이딩 윈도우를 이용한 연속 부분 수열의 합 개수 구하기 (1) | 2025.04.22 |
프로그래머스) 카펫 문제풀이 (0) | 2025.03.06 |
프로그래머스) 달리기 경주 문제풀이 (0) | 2025.02.21 |
프로그래머스) 개인정보 수집 유효기간 문제풀이 (0) | 2025.02.20 |