"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
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
// 반복할 숫자 입력
int n = scan.nextInt();
for(int i = 0; i < n; i++) {
// 데이터 입력 받고 char 배열로 변환
char[] arr = scan.next().toCharArray();
// 점수를 계산할 변수와 총 합을 담을 변수를 선언
int num = 0, sum = 0;
// 배열에 담긴 값 비교
for(char c : arr) {
if(c == 'O') {
num++;
sum += num;
} else {
num = 0;
}
}
System.out.println(sum);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num = Integer.parseInt(bf.readLine());
String [] arry = new String[num];
for(int i = 0; i < num; i++){
arry[i] = bf.readLine();
}
for(int i = 0; i < num; i++){
int count = 0;
int hap = 0;
for(int k = 0; k < arry[i].length(); k++){
if(arry[i].charAt(k) == 'O'){
count++;
}
else{
count = 0;
}
hap += count;
}
sb.append(hap).append('\n');
}
System.out.println(sb);
}
}