Baekjoon-8958 (OX점수도 구하고 내 인생도 구하고..)
문제
"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;
}
변형해줄 수 있다.
Author And Source
이 문제에 관하여(Baekjoon-8958 (OX점수도 구하고 내 인생도 구하고..)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dygks7724/Baekjoon-8958저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)