728x90
https://www.acmicpc.net/problem/8958
import sys
t = int(sys.stdin.readline())
for _ in range(t):
string = sys.stdin.readline().rstrip()
cnt, res = 1, 0
if string[0] =='O': #1
res += 1
for i in range(1, len(string)): #2
if string[i] == 'O': #3
if string[i-1] == string[i]: #4
cnt += 1
res += cnt
else: #5
res += 1
else: #6
cnt = 1
print(res)
#1 : 첫번째 요소가 'O'이면 res +1
#2 : 이전 문자와의 비교를 위해 1부터 반복문 시작
#3 : 'O'일때
#4 : 이전 문자와 겹치면 누진으로 res값 추가
#5 : 혼자만 떨어져있거나 처음인 'O'라면 res값만 1추가
#6 : 'X'라면 연속의 흐름이 끊긴것이기 때문에 cnt = 1로 고정
728x90
'[Coding Test] > [백준]' 카테고리의 다른 글
[백준] 10799 파이썬(python) : 쇠막대기 - (★) (0) | 2022.06.16 |
---|---|
[백준] 10828 파이썬(python) : 스택 (0) | 2022.06.16 |
[백준] 1427 python(파이썬) : 소트인사이드 (0) | 2022.06.13 |
[백준] 2480 python(파이썬) : 주사위 세개 - (수정) (0) | 2022.06.13 |
[백준] 2869 python(파이썬) : 달팽이는 올라가고 싶다 - 상세해설 (0) | 2022.05.20 |