백준(C언어) 풀이/1차원 배열

백준(C) 8958번 OX퀴즈 풀이

개발윗미 2021. 7. 13. 00:55

C로 구현한 8958번 OX퀴즈 구하기 문제 풀이입니다.

#include <stdio.h>
#include <string.h>

int main() {
    char ox[80];
    int num=0;
    scanf("%d", &num);
    for(int i=0; i<num; i++) {
        int result=0, count=1;
        scanf("%s", ox);
        for(int j=0; j<strlen(ox); j++) {
            if(ox[j] == 'O') {
                result += count;
                count++;
            }
            if(ox[j] == 'X') {
                count = 1;
            }
        }
        printf("%d\n", result);
    }
}

 

char형으로 배열을 선언하고 첫번째 for문을 통해 입력값을 배열에 삽입합니다.

 

두번째 for문 종료값에 strlen() 함수를 사용하여 반복횟수를 정하도록 합니다. strlen() 함수는 문자열의 길이를 가져올

수 있으며, 헤더에 <string.h> 를 선언해야 합니다.

 

if문을 통해 해당 자리의 문자가 O 라면 결과값에 먼저 삽입 후 count를 증가시키도록 합니다.

 

만약, 해당 자리의 문자가 X 라면 count 값을 1로 초기화하도록 합니다.

 

 

[소감]

result와 count 변수 선언이 첫번째 for문안에 들어가야 하는데 for문 밖에서 선언하는 사소한 실수를 하였다..

변수 선언에 있어서도 신중하게 생각하고 진행하면 좋을 것 같다.


https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net