끄적끄적 코딩
article thumbnail
Published 2019. 8. 4. 04:00
[C++] 백준 8958번 OX퀴즈 알고리즘
728x90

OX퀴즈에서 점수를 구하는 문제입니다.
O를 받으면 1점이고 연속으로 맞으면 그다음 점수는 +2점이 됩니다.

ex)
O = 1
OO = 1 + 2
OOOO = 1 + 2 + 3 + 4
OOXO = 1 + 2 + 0 + 1

먼저 string으로 받은 후 한 글자씩 나누어서 O인지 X인지 판별하며

맞았을 경우 count의 값을 sum에 넣어주며 count를 +1 해줍니다.

틀렸을 경우 count를 1로 초기화 해줍니다.

 

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

int main(int argc, char *argv[])
{	
	string s;
	string c;
	int t;
	int sum;
	int count;

	cin >> t;

	while (t--) {
		sum = 0;
		count = 1;

		cin >> s;

		for (int i = 0; i < s.length(); ++i) {
			c = s.substr(i, 1);

			if (c == "O") {
				sum += count;
				++count;
			}
			else {
				count = 1;
			}
		}

		cout << sum << endl;
	}
	
	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 10872번 팩토리얼  (0) 2019.08.04
[C++] 백준 15596번 정수 N개의 합  (0) 2019.08.04
[C++] 백준 2920번 음계  (0) 2019.08.04
[C++] 백준 10952번 A+B - 5  (0) 2019.08.04
[C++] 백준 11022번 A+B - 8  (0) 2019.08.04

검색 태그