728x90
▼ 문제 바로가기 (링크) ▼
https://leetcode.com/problems/split-a-string-in-balanced-strings/
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
반응형
'코딩 테스트 > leetCode' 카테고리의 다른 글
[leetCode] 2367. Number of Arithmetic Triplets (Python) (0) | 2022.10.20 |
---|---|
[leetCode] 1859. Sorting the Sentence (Python) (0) | 2022.10.19 |
[leetCode] 1389. Create Target Array in the Given Order (Python) (0) | 2022.10.18 |
[leetCode] 1678. Goal Parser Interpretation (Python) (0) | 2022.10.18 |
[leetCode] 1365. How Many Numbers Are Smaller Than the Current Number (Python) (0) | 2022.10.18 |