백준 8958번
https://www.acmicpc.net/problem/8958
8958번: OX퀴즈
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수
www.acmicpc.net
1. 문제
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.
2. 내가 작성한 알고리즘
#include <stdio.h>
#include <string.h>
#pragma warning (disable:4996)
int main()
{
int input, sum, num;
char array[80];
scanf("%d", &input);
for (int i = 0; i < input; i++) {
num = 0;
sum = 0;
scanf("%s", array);
for (int j = 0; j < strlen(array); j++) {
if (array[j] == 'O') {
num += 1;
sum = sum + num;
}
if (array[j] == 'X') {
num = 0;
}
} printf("%d\n", sum);
}
}
3. 이번 알고리즘을 통해 배운 점
문자열의 크기를 알기위한 함수는 #include <string.h>로 strlen( ) 을 사용하여 문자열의 크기를 구할 수 있다.
배열의 크기를 설정한 이후 에는 scanf()함수에서 &연산자를 사용하지 않는다. 그 이유는 &를 사용하는 이유는 주소를 지정해 주기 위함이기에 배열의 크기를 설정한 이후에는 이미 주소를 지정해 주었기 때문에 이미 설정한 이후에는 &연산자는 사용하지 않는다.
문자 = char 변수='한 문자' %c로 표시
문자열= char *변수="문장" %s로 표시
c언어의 문자열은 마지막에 항상 null값이 붙는다. null은 0또는 끝을 의미한다.
'C > 백준 알고리즘 (c언어)' 카테고리의 다른 글
함수 practice 02_한수 (0) | 2021.07.01 |
---|---|
함수 practice 01_셀프 넘버 (0) | 2021.07.01 |
1차원 배열 practice 02_최댓값 구하기 (0) | 2021.06.29 |
1차원배열 practice 01_평균은 넘겠지 (0) | 2021.06.29 |
for문 practice 02_ A+B-4 (0) | 2021.06.28 |