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) 의 위치를 처음에는 잘못 설정하여 원하는 출력값이 나오지 않았지만
빠르게 원인을 찾아 첫번째 반복문 내에 넣어서 해결하였다.