본문 바로가기
Python/백준

[Python] 백준 8958 OX퀴즈 - 1차원 배열(5)

by 푸_푸 2022. 9. 12.
728x90

백준 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만으로 이루어져 있다.
출력

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


제출

c=int(input())
for _ in range(c):
    a=input()
    s,t=0,0
    for x in range(len(a)):
        if a[x]=='O':
            s+=1
            t+=s
        else:
            s=0
    print(t)

해설

c : 테스트 케이스의 개수를 저장

케이스의 개수만큼 for문 실행

a=퀴즈 결과를 str으로 저장

s, t : 배점, 총점

퀴즈 결과의 개수만큼 for문 실행

결과가 O일 때 배점을 1점씩 추가 아닐 때 배점을 0으로 초기화

결과가 O일 때 총점에 배점을 추가

총점을 출력
예제

5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

 

결과

백준 8958 OX퀴즈

 

 

8958번: OX퀴즈

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

www.acmicpc.net

 

728x90

댓글