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 |