(파이썬)백준 8958. OX퀴즈

문제

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력

각 테스트 케이스마다 점수를 출력한다.

구상

  1. 반복 횟수를 입력받는다.
  2. OX퀴즈를 입력받고 string에 list형태로 저장한다.
  3. string의 요소에서 X가 나오기 전까지 count를 증가시키고 total에 누적해서 더한다. X가 나오면 count를 초기화한다. string 길이만큼 반복한다.
  4. total을 출력한다.
  5. 2~4를 1에서 입력받은 횟수만큼 반복한다.

코드

import sys

total = 0
count = 0
string = list()
repeat = int(sys.stdin.readline())
for i in range(repeat):
    total = 0
    string = list(sys.stdin.readline())
    for j in range(len(string)):
        if string[j] == 'O':
            count += 1
            total += count
        else:
            count = 0
    print(total)