IT

백준 알고리즘 연습(파이썬) 8958번 OX 퀴즈

rimicode 2022. 8. 3. 22:17
728x90
반응형
SMALL

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

 

출력

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

 

예제 입력 1

5

OOXXOXXOOO

OOXXOOXXOO

OXOXOXOXOXOXOX

OOOOOOOOOO

OOOOXOOOOXOOOOX

 

예제 출력 1

10

9

7

55

30

 

a = int(input()) # 테스트 케이스 개수 입력

for i in range(a):
  b = input() # 테스트 케이스 입력
  score = list(b) # 리스트 형태로 변환
  sum = 0
  c = 1

  for i in score:
    if i == 'O': # O를 만나게 되면
      sum += c # sum에 c를 더해주고
      c += 1 # c는 1씩 증가
    else: # X를 만나게 되면
      c = 1 # c는 1로 돌아옴

  print(sum) # 테스트 케이스마다 점수 출력
  
# 5
# OOXXOXXOOO
# 10
# OOXXOOXXOO
# 9
# OXOXOXOXOXOXOX
# 7
# OOOOOOOOOO
# 55
# OOOOXOOOOXOOOOX
# 30
728x90
반응형
LIST