s = "bba"
이 문제는 종료조건이 될때까지 반복하며 s
를 분리한다.
while문으로 반복을 구현하였으며, 종료조건에 이르면 while문을 탈출하도록 했다.
def solution(s):
result = 0
xCnt = 0 # x가 나온 횟수
yCnt = 0 # x가 아닌 다른 글자들이 나온 횟수
# 문자열의 남은 부분이 없으면 종료
while s:
x = s[0]
for idx,i in enumerate(s):
if x == i:
xCnt += 1
else:
yCnt += 1
if xCnt == yCnt:
result += 1
s = s[idx+1:]
break
# 두 횟수가 다른 상태에서 더 이상 읽을 글자가 없으면 종료
else:
result += 1
break
return result
나의 경우 for문으로 문자열을 하나씩 순회하였는데 이 대신 큐를 사용하는 방법도 있다. 나의방법의 경우, 인덱스를 새롭게 분리한 문자열의 첫번째로 옮겨주어야 했는데 큐를 사용하면 그럴필요없이 이어서 popleft()하면 된다.