출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

개인적으로 굉장히 어려웠던 문제이다. 어떻게 점수 누적되는 것을 구현하고, 'X'가 나왔을 경우에는 이 누적된 점수를 초기화 시킬지에 대한 고민을 많이 했다. 이를 해결하기 위해서는 다음과 같이 했다:

import sys

T = int(sys.stdin.readline())

for i in range(T):
    ans_str = sys.stdin.readline()
    ans_sum = 0
    ans_count = 0
    for j in range(len(ans_str)):
        if ans_str[j] == 'O':
            ans_count += 1
            ans_sum += ans_count
        elif ans_str[j] == 'X':
            ans_count = 0
    print(ans_sum)

ans_count 와 ans_sum 이라는 변수 두가지를 두고, 'O'가 나올 경우 ans_count를 1 올려줌과 동시에 이 ans_count를 ans_sum에 더해주는 것이다. 이렇게 하면 이전에 'O'가 나왔어도 누적이 된다.

또한, 만약 'X'가 나왔을 경우 ans_count = 0으로 설정하면서 'X'가 나온 경우에는 ans_count를 초기화 시켜주는 작업을 했다.

 

나한테는 상당히 오랜 시간이 걸린 문제이고, 조금 색다른 방법을 요구했던 문제인 것 같다.