https://www.acmicpc.net/problem/8958
1. 문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
2. 입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
3. 출력
각 테스트 케이스마다 점수를 출력한다.
4. 풀이
테스트 케이스만큼 반복을 설정해두고
문자열을 입력받고 하나씩 읽어봅시다.
문자열이 O이면 1씩 점수를 늘려주고 늘어난 값을 계속 더해주고
더해준 값은 계속 출력해야 하니까 for문 전에 초기화까지 해줍시다.
5. 코드
#include <stdio.h>
int main(void) {
int N;
char c[88];
scanf("%d", &N);
for (int i = 0; i < N; i++) {
int score = 0;
int total = 0;
scanf("%s", c);
for (int k = 0; c[k] !=NULL; k++) {
if (c[k] == 'O') {
score++;
total += score;
}
else{
score = 0;
}
}
printf("%d\n", total);
}
}
'백준 단계별로 풀기 > 1차원 배열' 카테고리의 다른 글
[백준/C] 4344 평균은 넘겠지 (0) | 2021.12.03 |
---|---|
[백준/C] 1546 평균 (0) | 2021.11.10 |
[백준/C] 3052 나머지 (0) | 2021.11.08 |
[백준/C] 2577 숫자의 개수 (0) | 2021.11.07 |
[백준/C] 2562 최댓값 (0) | 2021.11.04 |