8958 OX퀴즈

sky·2022년 3월 27일
0

BaekJoon Online Judge(B)

목록 보기
8/98
post-thumbnail

문제설명

♕Bronze Ⅱ

문제

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.

출력

각 테스트 케이스마다 점수를 출력한다.

Solution

C

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

int main()
{
    int test_case; //테스트 케이스 개수 입력받기
    scanf("%d\n", &test_case); //정수 입력받음

    char ox[80]; //문자열 초기화
    for (int i = 1; i <= test_case; i++) {
        scanf("%s", ox); //입력받기
        int sum = 0; //합계
        int score = 1; //점수

        for (int j = 0; j <= strlen(ox); j++) {//문자열 길이만큼 반복해서 더함
            if (ox[j] == 'O') 
            {
                sum += score;
                score++;
            }
            else
                score = 1;
        }
        printf("%d\n", sum);
    }
    return 0;
}

알게 된 코드

strlen()은 문자열의 길이를 확인할 수 있는 함수로 이걸 쓰기 위해서는 <string.h>헤더파일을 선언해줘야 한다.

total time

  • 2022-03-27 / 16:10 - 17:10 : 에러나서 중단
  • 2022-03-27 / 19:40 - 20:35 : 55분 소요

후기

간신히 했지만 for문 너무 복잡해서 싫다. 그치만 해야지.. 자꾸 0과 1로만 출력이 돼서 코드를 for문 바깥으로 뺐다가 넣었다가를 반복하는 과정이 오래 걸렸다.

profile
개발자가 되고 싶은 1人

0개의 댓글

관련 채용 정보