코딩 테스트/leetCode

[leetCode] 1221. Split a String in Balanced Strings (Python)

우주바다 2022. 10. 19. 17:04
728x90

▼ 문제 바로가기 (링크) 

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

 

Split a String in Balanced Strings - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


R 과 L로만 이루어진 문자열 s가 주어진다.

R과 L의 개수가 같은 문장을 Balanced Strings 라고 했을 때,

s 안에 몇 개의 Balanced Strings가 있는 지 정수로 반환하는 문제.

class Solution:
    def balancedStringSplit(self, s: str) -> int:     
        cnt_r = 0
        cnt_l = 0
        cnt = 0    
        
        for i in s:
            if i == "R":
                cnt_r += 1
            else :
                cnt_l += 1  
                
            if cnt_r == cnt_l:
                cnt += 1     
                
        return cnt

R과 L의 개수를 세는 카운터 변수, 최종 값을 셀 변수를 생성하고

s를 순회하며 값이 같아질 때마다 cnt를 1씩 증가시켜 해결했다.

 

처음에는  슬라이싱으로 자른 문자열을 빈 리스트에 따로 담고

그 원소의 개수를 len으로 세어 반환하려다가 

시간, 공간 복잡도 면에서 좋지 않고 굳이 필요 없다는 걸 깨닫고 모두 변수로 처리했다. 

문제에서 요구하는 것 외의 정보를 담거나, 나도 모르게 복잡하게 구현할 때가 있다.습관에 유의하면서 간결하게 만들어보려고 노력했다.

 

Runtime: 36 ms, faster than 88.24%

Memory Usage: 13.8 MB, less than 95.30% 

728x90
반응형