C로 구현한 8958번 OX퀴즈 구하기 문제 풀이입니다.
#include <stdio.h>
#include <string.h>
int main() {
char ox[80];
int num=0;
scanf("%d", &num);
for(int i=0; i<num; i++) {
int result=0, count=1;
scanf("%s", ox);
for(int j=0; j<strlen(ox); j++) {
if(ox[j] == 'O') {
result += count;
count++;
}
if(ox[j] == 'X') {
count = 1;
}
}
printf("%d\n", result);
}
}
char형으로 배열을 선언하고 첫번째 for문을 통해 입력값을 배열에 삽입합니다.
두번째 for문 종료값에 strlen() 함수를 사용하여 반복횟수를 정하도록 합니다. strlen() 함수는 문자열의 길이를 가져올
수 있으며, 헤더에 <string.h> 를 선언해야 합니다.
if문을 통해 해당 자리의 문자가 O 라면 결과값에 먼저 삽입 후 count를 증가시키도록 합니다.
만약, 해당 자리의 문자가 X 라면 count 값을 1로 초기화하도록 합니다.
[소감]
result와 count 변수 선언이 첫번째 for문안에 들어가야 하는데 for문 밖에서 선언하는 사소한 실수를 하였다..
변수 선언에 있어서도 신중하게 생각하고 진행하면 좋을 것 같다.
https://www.acmicpc.net/problem/8958
'백준(C언어) 풀이 > 1차원 배열' 카테고리의 다른 글
백준(C) 4344번 평균은 넘겠지 풀이 (0) | 2021.07.13 |
---|---|
백준(C) 1546번 평균 풀이 (0) | 2021.07.12 |
백준(C) 3052번 나머지 풀이 (0) | 2021.07.12 |
백준(C) 2577번 숫자의 개수 풀이 (0) | 2021.07.12 |
백준(C) 2562번 최댓값 풀이 (0) | 2021.07.12 |