Koala - 7기/기초 알고리즘 스터디

[백준/C++]:8958번 OX퀴즈

hoeunwang 2022. 7. 10. 23:14

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

 

8958번: OX퀴즈

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

www.acmicpc.net


문제해석


O,X로 이루어진 문자열을 입력받은 후 O만 확인하여 점수를 계산하고 출력해주는 문제이다.


코드


 

#include <iostream>
#include <string>
using namespace std;

int Quiz(string& str) {
	
	int a = 0;
	int sum = 0;
 
	for(char &k : s) {
		
		if(k == 'O') {
			a++;
			sum += a;
		}
		else {
			a = 0;
		}
	}
	return sum;
}
 
int main(int argc, const char * argv[]) {
 
	int n;
	cin >> n;
 
	for(int i = 0; i < n; i++) {
		string str;
		cin >> str;
 
		cout << Quiz(str) << "\n";
	}
 
	return 0;
}

문제풀이


문제 수를 n으로 입력받고, 그만큼의 O,X로 이루어진 문자열을 str로 입력받는다. Quiz라는 함수를 생성하여, 넘겨준 str에서 O의 갯수가 몇개인지 if문으로 구분하여 O 일때의 점수를 추가해준다. 그렇게 추가하며 더해준 최종 점수를 return 해주어, main에서 출력할 수 있도록 한다.