[LeetCode] Split a String in Balanced Strings

아르당·2026년 4월 12일

LeetCode

목록 보기
255/303
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

균형 잡힌 문자열은 'L'과 'R'이 같은 개수를 같게 가지고 있다.
균형 잡힌 문자열 s가 주어졌을 때, 다음 조건을 만족하는 여러 개의 부분 문자열로 분할해라.

  • 각 부분 문자열은 균형이 잡혀있다.

얻을 수 있는 최대의 균형 잡힌 문자열의 개수를 반환해라.

Example

#1
Input: s = "RLRRLLRLRL"
Output: 4
Explanation: s는 "RL", "RRLL", "RL", "RL"로 나눌 수 있고, 각 부분 문자열은 'L'과 'R'의 개수가 같다.

#2
Input: s = "RLRRRLLRLL"
Output: 2
Explanation: s는 "RL", "RRRLLRLL"로 나눌 수 있고, 각 부분 문자열은 'L'과 'R'의 개수가 같다.

#3
Input: s = "LLLLRRRR"
OUtput: 1
Explanation: s는 "LLLLRRRRR"로 나눌 수 있다.

Constraints

  • 2 <= s.length <= 1000
  • s[i]는 'L' 또는 'R' 둘 중 하나이다.
  • s는 균형 잡힌 문자열이다.

Solved

class Solution {
    public int balancedStringSplit(String s) {
        int count = 0;
        int balanced = 0;

        for(char c : s.toCharArray()){
            if(c == 'L'){
                balanced++;
            }else{
                balanced--;
            }

            if(balanced == 0){
                count++;
            }
        }

        return count;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글