#include <stdio.h>
#include <string.h>
int main (){
int line, i, j;
scanf("%d", &line);
for (i = 0; i < line; i++) {
char s[80];
int score, temp;
scanf("%s", &s);
if (s[0] == 'O') {
temp = 1;
score = 1;
}
else {
temp = 0;
score = 0;
}
for (j = 1; j<strlen(s); j++){
if (s[j-1] == s[j] && s[j] == 'O') temp++;
else if (s[j] == 'O') temp = 1;
else temp = 0;
score = temp + score;
}
printf("%d\n", score);
}
}
첫 문자가 O이면 temp = 1, score = 1로 시작. X이면 temp = 0, score = 0으로 시작
전 문자 = 현 문자이고 현 문자가 O이면 temp에 1을 더함 (연속 O일 때 점수가 가산되는 것을 반영하기 위함)
현 문자가 O만 해당하면 temp = 1로 설정 (O가 처음 등장하면 1점으로 시작)
모두 해당되지 않으면 temp = 0으로 설정
for loop 한 번 돌 때마다 temp를 score에 더함
-> 한 줄 계산이 끝나면 score 출력
*scanf & 유의하기
'solving > C, C++' 카테고리의 다른 글
[백준] 2908번 상수 (atoi, sprintf, 문자열 선언) (0) | 2022.08.27 |
---|---|
[백준] 2577번 숫자의 개수 (sprintf) (0) | 2022.08.27 |
[백준] 2920번 음계 (0) | 2022.08.27 |
[백준] 2675번 문자열 반복 (서식문자 주의) (0) | 2022.08.27 |
[백준] 11720번 숫자의 합 (문자를 숫자로 변환하기) (0) | 2022.08.27 |