문제 출처: www.acmicpc.net/problem/8958
1. 코드
#include <stdio.h>
#include <string.h>
int main(void)
{
int n, i, j, sum, add; //sum = 최종적인 점수, add = 추가적으로 더해지는 점수
char arr[81];
scanf("%d", &n);
for(i=0; i<n; i++)
{
sum=0, add=1;
scanf("%s", arr);
for(j=0; j<strlen(arr); j++) //strlen은 string.h파일에 있는 함수 중 문자열의 길이를 측정할 때 사용됨
{
if(arr[j]=='O')
{
sum+=add;
add++;
}
else
add=1;
}
printf("%d\n", sum);
}
return 0;
}
2. 느낀 점
첫 번째로 string.h 이 헤더 파일에 대해 알면 편하다. 왜냐하면 배열을 사용할 때 배열에 할당된 개수가 몇 개인지 구할 때 매우 유용하기 때문이다.
두 번째로는 문자열을 입력받는 것이다. 문자열을 입력받는 방법은 여러 가지 있지만 나는 그중에서 %s를 이용하여 입력하는 방법을 사용했다.
세 번째로 점수의 합계를 점점 추가적으로 늘려가는 것인데 연습뿐인 것 같다. 나는 여기서 하나의 변수로 해결을 해보려고 했으나 도저히 방법이 떠오르지 않아 변수를 추가하여 문제를 해결했다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 11720번: 숫자의 합 [Java] (0) | 2019.12.22 |
---|---|
백준 알고리즘 1065번: 한수 C언어 (0) | 2019.12.20 |
백준 알고리즘 4673번: 셀프 넘버 C언어(개선) (0) | 2019.12.11 |
백준 알고리즘 4673번: 셀프 넘버 C언어 (0) | 2019.12.09 |
백준 알고리즘 4344번: 평균은 넘겠지 C언어 (0) | 2019.12.08 |