문제
"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
접근방법
입력 5을 받은뒤 어떻게 문자열을 입력받게 할것인가?
입력 받은 문자열을 어떻게 점수화 시킬것인가?
풀이
N = int(input())
for i in range(5):
a = list(input())
plus = 0
number_plus = 0
for x in a:
if x== "X":
plus = 0
else: # "O" 값이 일경우
plus +=1
number_plus += plus # 총합계를 만들기 위한 점수
print(number_plus)
OX퀴즈 문제는 문자열을 어떻게 숫자로 표현해서
값을 출력할것인가 핵심이다.
이중 반복문 사용으로 사용하여 조건문걸고 x="X" 라고 할때 plus 값을 0으로 만들주고 나머지는 1로 해주는 else문을 만들어 주면 된다.
나는 plus = 0, plus +=1, number_plus +=plus 코드를 생각하는데 많은시간이 좀 걸렸다!
이문제는 개인적으로 많은걸 알수 있었다.