[백준 파이썬] 8958번 OX 퀴즈

JY·2022년 5월 14일
0

백준

목록 보기
2/3

https://www.acmicpc.net/problem/8958


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

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

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

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

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

입력예시
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

출력예시
10
9
7
55
30

sol) 테스트 개수만큼 반복문을 실행하여 각 테스트 케이스에서의 문자열을 입력 받는다. 그런 후 각 테스트 케이스의 문자열만큼 반복하여 O 또는 X를 확인하여 점수에 반영한다.

n = int(input())  #테스트 개수 입력받기

for _ in range(n):  #테스트 개수만큼 반복문 실행
    case = input()  #각 테스트 케이스 문자열 입력
    score = 0
    total = 0
    for j in case:  #각 테스트 케이스의 문자열만큼 반복
        if j == 'O':  #문자열이 'O'일 때 
            score += 1
        else:  #문자열이 'X'일 때
            score = 0
        total += score
    print(total)  #각 테스트 케이스에서의 점수 출력
교재에서의 예제와 비슷한 유형이라 쉽게 풀린 듯 하다.
하지만 print(total) 의 위치를 처음에는 잘못 설정하여 원하는 출력값이 나오지 않았지만
빠르게 원인을 찾아 첫번째 반복문 내에 넣어서 해결하였다.

0개의 댓글