본문 바로가기
프로그램/C언어 1000제

C언어 165제] 2005년 ICPC 서울지역예선 A번 OX퀴즈

by 건티 2024. 9. 12.
728x90

출처 : 반크_세계유산 경복궁

 

문제]

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

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

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

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

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

예제 입력 1 
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
예제 출력 1 
10
9
7
55
30

 


출처 : 백준_8958번

 

참고풀이]

#include <stdio.h> 
#include <string.h> //strlen()

int main()
{
   int N;//테스트 케이스의 개수 입력변수
   char Str[100]={'\0'};//테스트 케이스 문자열 변수
   int Result;//테스트 케이스의 점수 합변수
   int O;//테스트 케이스의 맞은 점수변수
   int i,j;//인덱스 또는 반복변수
 
   scanf("%d",&N);
   for(i=1;i<=N;i++)
   {
       scanf("%s",Str);
       if(strlen(Str)>0 && strlen(Str)<80)
      {
         O=0; Result=0;
         for(j=0;j<strlen(Str);j++)
         {
            if(Str[j]=='O') O++; else O=0;
            Result+=O;
         }

      //결과출력
     printf("%d\n",Result);
   }
   }

   return 0;
}

 

참고풀이 결과]

 

 

 

 

 

대한민국의 아름다운 영토, 독도의 가을

 

반응형

댓글