import sys N = int(input()) #테스트 케이스 입력 for i in range(N): ox = sys.stdin.readline() #OX 답안 입력 cnt = 0 #'O' 개수 카운트 sum = 0 # 점수합 for c in ox: if c == 'O': #답이 'O'일 경우 cnt += 1 #'O'의 개수 1개 증가 sum += cnt #연속된 'O'의 개수만큼 점수도 오르므로 cnt만큼 더해준다. else: cnt = 0 #'X'가 나왔을 경우 'O'의 개수 0으로 초기화 print(sum) #답 출력
'O'의 연속된 개수만큼 점수가 올라가므로 string형 변수 ox
에 퀴즈 결과를 입력한다.
그 후 ox
를 처음부터 끝까지 돌면서 정답인 것의 개수를 세는 동시에 점수도 올려준다.
'O'의 개수를 1부터 세면서 연속된 'O'가 있으면 연속된 'O'의 개수만큼 점수도 올라가므로 sum
에 cnt
만큼 더해주면 된다.
#include <string> #include <iostream> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N; cin >> N; while (N--) { string OX; cin >> OX; int sum = 0; int cur = 0; for (char a : OX) { if (a == 'O') { cur++; sum += cur; } else { cur = 0; } } cout << sum << '\n'; } }