LeetCode - 1221. Split a String in Balanced Strings

henu·2023년 9월 4일
0

LeetCode

목록 보기
44/186

Solution

var balancedStringSplit = function(s) {
    let count = 0;
    let balance = 0;

    for(char of s) {
        if(char === 'R') balance++;
        if(char === 'L') balance--;
        if(balance === 0) {
            count++;
            balance = 0;
        }
    }

    return count;
};

Explanation

문제의 조건을 간단히 줄여보면 R의 개수와 L의 개수가 같아야 스플릿이 가능하다는 것이다. 예를 들어 앞의 R의 개수가 5개면 뒤의 L의 개수가 5개가 있어야 스플릿이 가능하다. R과 L의 순서를 거꾸로해도 마찬가지이다.
이 규칙을 활용하기 위해서는 R이나 L의 개수를 기억해야한다. 그래서 기억을 위해 변수 하나를 선언하고 R이 나타나면 +1를 하고 L이 나타나면 -1를 하기로했다.
변수가 0이 될 경우, R과 L의 개수가 같다는 것이므로 count 변수에 1을 추가해준다.

0개의 댓글