solving/C, C++
[백준] 8958번 OX퀴즈
Seohyeong Lee
2022. 8. 27. 15:42
#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 & 유의하기