Baekjoon-8958 (OX점수도 구하고 내 인생도 구하고..)

1724 단어 baekjoonox문제CC

문제

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

"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.

OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

입력

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

풀이 코드

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

int main()
{
    int test = 0; 
    char OX[90];
    int score = 0; // 총점수
    int plus = 0; 
    
    scanf("%d",&test);
    
    for(int i = 0; i < test; i++)
    {
        scanf("%s",&OX);
        plus = 0;
        score = 0;
        for (int j = 0; j < strlen(OX); j++)
        {
            if(OX[j] == 'O')
            {
                plus++; // O가 연속적으로 나오면 점수가 오른다.
            }
            else
            {
                plus=0;
            }
            score+=plus;
        }
        printf("%d\n",score);
    }
    return 0;
}

여기서 조금 변형을 주면 굳이 #include <string.h>와 for문에 strlen을 쓰지 않고

 for (int j = 0; OX[j] != '\0'; j++) // OX[j]가 공백이 아닐 때까지 j증가
   {
           if(OX[j] == 'O')
           {
               plus++; // O가 연속적으로 나오면 점수가 오른다.
           }
           else
           {
               plus=0;
           }
           score+=plus;
       }

변형해줄 수 있다.

좋은 웹페이지 즐겨찾기