Algorithm/릿코드

99클럽 코테 스터디 7일차 1221. Split a String in Balanced Strings

Albosa2lol 2024. 6. 5. 17:53

https://leetcode.com/problems/split-a-string-in-balanced-strings/description/

 

문제 설명

주어진 문자열 s를 균형 잡힌 문자열로 나누는 작업을 수행해야 합니다. 여기서 균형 잡힌 문자열은 L의 수와 R의 수가 동일한 문자열입니다. 가능한 많은 균형 잡힌 문자열로 나누고, 나눌 수 있는 문자열의 개수를 반환하세요.

예제

  1. 입력: s = "RLRRLLRLRL" 출력: 4 설명: RL, RRLL, RL, RL로 나눌 수 있습니다.
  2. 입력: s = "RLLLLRRRLR" 출력: 3 설명: RL, LLLRRR, LR로 나눌 수 있습니다.
  3. 입력: s = "LLLLRRRR" 출력: 1 설명: LLLLRRRR로 나눌 수 있습니다.

제약 조건

  • 1 <= s.length <= 1000
  • s[i]는 'L' 또는 'R'입니다.
  • s는 균형 잡힌 string 문자열 입니다.
class Solution:
    def balancedStringSplit(self, s: str) -> int:
        counter = 0
        answer = 0
        for alpha in s:
            if alpha is "R":
                counter += 1
            else:  # alpha is "L":
                counter -= 1

            if counter == 0:
                answer += 1

        return answer

 

풀이

Count 를 이용해서 푼다.

s 에 담긴 문자열을 순회하여 R 일경우 counter 라는 변수에 +1, K 일경우 -1 을 넣는다.

(초기 설정 0) 0이 될 경우, answer 에 값을 1씩 추가한다.

 

s 문자열을 모두 순회 후, answer 에 추가된 총 합의 값을 반환한다.