https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
ox문제의 결과를 특정 규칙을 통해 점수로 반환하는 문제.
o가 연속해서 나오는 경우 점수가 1점씩 가중된다.
예를 들어 OOXO인 경우, 점수는 1+2+0+1 = 4점이 된다.
결과값을 문자열로 받아 o가 연속일때의 가중치를 더하여 점수에 더하는 방식으로 풀었다.
#include<stdio.h>
int main(){
char arr[81]; // 퀴즈 결과
int Tcase; // 테스트 케이스
int score = 0; // 총합점수
int scoretemp = 0; // 점수
int idx = 0; // 문자열 인덱스, 널문자 판별을 위함
scanf("%d", &Tcase);
for (int i = 0; i < Tcase; i++) {
scanf("%s", arr);
score = 0; // 점수 관련 변수 초기화
scoretemp = 0;
idx = 0;
while (arr[idx] != '\0') {
if (arr[idx] == 'O') {
scoretemp += 1;
score += scoretemp;
} else {
scoretemp = 0;
}
idx++;
}
printf("%d\n", score);
}
return 0;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 15596번 C언어 풀이 (0) | 2021.08.05 |
---|---|
백준 4344번 C언어 풀이 (0) | 2021.08.05 |
백준 1546번 C언어 풀이 (0) | 2021.08.04 |
백준 3052번 C언어 풀이 (0) | 2021.08.04 |
백준 2577번 C언어 풀이 (0) | 2021.08.03 |