•
문제 설명 : 0과 1로 이루어진 문자열 중 조건에 맞는 그룹쌍을 몇개 확인할 수 있는지 갯수를 반환
•
풀이 방법
◦
문제의 조건을 확인하였을 때, 0과 1의 그룹 중 더 적은 숫자의 갯수만큼 카운트하면 된다.
▪
00011 → 2
▪
00111 → 3개
•
시간복잡도 :
•
성공 코드
class Solution:
def countBinarySubstrings(self, s: str) -> int:
left = 0
count = 0
while left < len(s):
left_count = 1
right_count = 1
# 첫 숫자가 연속되게 몇개 나오는지 확인
while left + 1 < len(s) and s[left] == s[left + 1]:
left += 1
left_count += 1
# 탐색 범위를 넘으면 종료
if left + 1 >= len(s):
break
# 변경되는 위치
right = left + 1
# 변경된 숫자가 연속되게 몇게 나오는지 확인
while right + 1 < len(s) and s[right] == s[right + 1]:
right += 1
right_count += 1
count += min(left_count, right_count)
# 다음 탐색 위치로 이동 -> 탐색 중 변경된 숫자가 있는 위치
left += 1
right = left
return count
Python
복사