[ 백준 8958번] OX퀴즈

2021. 11. 15. 10:09백준/단계별 문제

백준 8958번 / 5단계 / OX 퀴즈

 

백준 8958번 - OX퀴즈

 

채점결과는 다음과 같다

  메모리 시간
1번째 방법 1112 KB 0 ms

 

문제 풀이
문자열을 입력받을 n 을 입력받는다

1. OX문자열을 반복을 문자열 길이만큼 돌리면서 인덱스마다 O, X 인지 문자체크를 하고 O면 연속되는 스코어를 플러스 해주고 최종 스코어에 더해준다. X를 만나면 연속되는 스코어를 0로 초기화 해준다.

OX = OXO
i = 0
OX[i] = OX[0] = O
straight = straight + 1
score = score + straight

i = 1
OX[i] = OX[1] = X
straight = 0

2. 이러한 구조로 반복을 n번만큼 반복을하고 O로 끝났을경우에도 다음 문자열을 점수평가를 할려면
연속되는 스코어가 제로여야 하므로 0으로 초기화 시켜준다. 최종스코어를 출력하고 최종스코어도 0으로 초기화 시켜준다.

 

코드
#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

int main() {
	int n, i, j, length;
	int score = 0, straight = 0;
	char ox[80];

	scanf("%d", &n);
	for ( i = 0; i < n; i++ ) {
		scanf("%s", ox);
		length = strlen(ox);
		score = 0;
		for ( j = 0; j < length; j++ ) {
			if ( ox[j] == 'O') {
				++straight;
				score += straight;
			} else if ( ox[j] == 'X' ) {
				straight = 0;
			}
		}
		straight = 0;
		printf("%d\n", score);
	}
}

'백준 > 단계별 문제' 카테고리의 다른 글

[ 백준 15596번 ] 정수 N개의 합  (0) 2021.11.25
[ 백준 4344번 ] 평균은 넘겠지  (0) 2021.11.22
[ 백준 1546번 ] 평균  (0) 2021.11.12
[ 백준 3052번 ] 나머지  (0) 2021.11.12
[ 백준 2562번 ] 최댓값  (0) 2021.11.09