T = int(input())
for i in range(1, T+1):
result = input()
score = []
# O인경우 1, X인경우 0으로 리스트 생성
for i in result:
if i == 'O':
score.append(1)
else:
score.append(0)
#누적합 만들기
for i in range(1, len(score)):
# 해당 숫자가 1이고, 이전 숫자도 1인경우 이전 숫자에 +1한 값으로 변경
if score[i] and score[i-1]:
score[i] += score[i-1]
print(sum(score))
🎈 많은 문제들이 리스트를 만들어 단순히 값을 저장하는 것에 넘어, 필요한 정보를 저장해놓고 활용한 경우가 많음!
위의 문제에서는 O인 경우 1로 저장해 놓고, X인경우는 0으로 저장해놓은 뒤 활용한 풀이
'알고리즘 문제 풀기 > 백준(Baekjoon)' 카테고리의 다른 글
[백준 알고리즘] 11659. 구간 합 구하기 4 _ 파이썬 (1) | 2021.02.13 |
---|---|
[백준 알고리즘] 4344. 평균은 넘겠지(소수점 처리) - 파이썬 (0) | 2021.02.10 |
[백준 알고리즘] 10828번 스택 (0) | 2021.02.06 |
[백준 알고리즘] 11653번 소인수분해 _ 파이썬 python (1) | 2021.02.04 |
[백준 알고리즘] 11399번 ATM_ python 파이썬 (0) | 2021.02.04 |