본문 바로가기
알고리즘/백준 문제 풀이

[BOJ/백준] 8958번 OX퀴즈 - [c/c++] 풀이

by 미니상미니 2022. 10. 12.
반응형

https://www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수

www.acmicpc.net

 

 

 

 


  • 문제


해설

O의 개수에 따른 누적값을 저장하는 변수를 1로 선언한다.

O를 만날 때 마다 변수 값을 더해주며 변수에 1씩 더하다, X를 만나면 1로 초기화 한다.

 

c - strlen(s) : 배열 s의 길이를 반환해준다. string.h 헤더 파일에 포함되어 있다.

c++ - s.length() : string s의 길이를 반환해준다. 

 

코드

c

#include <stdio.h>
#include <string.h>


int main() {

	
	int t;
	char s[80];
	int score;
	int oCnt;

	scanf("%d", &t);

	for (int i = 0; i < t; i++) {
		scanf("%s", s);
		
		score = 0;
		oCnt = 1;

		for (int i = 0; i < strlen(s); i++) {
			if (s[i] == 'O') score += oCnt++;
			else if (s[i] == 'X') oCnt = 1;
		}

		printf("%d \n", score);
	}


	return 0;
}

 

c++

#include <iostream>

using namespace std;

int main() {

	
	int t;
	string s;
	int score;
	int oCnt;

	cin >> t;

	for (int i = 0; i < t; i++) {
		cin >> s;
		
		score = 0;
		oCnt = 1;

		for (int i = 0; i < s.length(); i++) {
			if (s[i] == 'O') score += oCnt++;
			else if (s[i] == 'X') oCnt = 1;
		}

		cout << score << '\n';
	}


	return 0;
}

 

 

 

 

 

반응형

댓글