BOJ8958 - OX 퀴즈

CYSSSSSSSSS·2023년 7월 19일

알고리즘

목록 보기
77/83

문제 8958

문제

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

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

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

해결

  • 부분합을 계산하는 변수 , 전체 점수를 저장하는 변수를 따로 만들어서 계산한다.
import sys

input = sys.stdin.readline

n = int(input())
answers = []
for _ in range(n):
    sentence = input()
    score = 0
    sum_ = 0
    for s in sentence:
        if s == 'O':
            score += 1
            sum_ += score
        else:
            score = 0

    answers.append(sum_)

for ans in answers:
    print(ans, end='\n')

profile
개발자 되고 싶어요

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

유익한 정보를 제공해주셔서 감사합니다.

답글 달기