728x90
반응형
백준 8958번 문제는 OX문제입니다.
먼저 반복할 횟수를 입력 받고 그 다음 OX를 입력 받습니다
O일 경우 sum에 point 값을 더해주고 연속된 값이면 point++값을 더합니다
연속이 깨지면 다시 1로 초기화합니다!
#include<iostream>
#include<string>
using namespace std;
int main()
{
int num = 0, sum = 0, point = 1;
int n;
string str;
cin >> n;//반복할 횟수
cin.ignore();//cin에는 기본적으로 "\n"이 있기 때문에 getline()함수가 정상적으로 작동하려면 필요함.
for (int j = 0; j < n; j++) {
getline(cin, str);
for (int i = 0; i < str.length(); i++) {
if (str[i] == 'O') {
sum += point;
point++;
}//"O"의 값을 만나면 sum에 point 값을 더하고 연속된 값이 나오는 경우 1씩 증가하면서 더함
else {
point = 1;
}//연속이 아닐 경우 1부터 다시 시작
}
cout << sum << endl;
sum = 0;//0으로 초기화 후 다음 값을 받음
point = 1;//1로 초기화
}
}
728x90
반응형
'프로그래밍_백준 > C++' 카테고리의 다른 글
(C++) 백준 1546번 평균 [new(), delete()] (0) | 2023.02.22 |
---|---|
(C++) 백준 1157번 단어공부 (0) | 2023.02.22 |
(C++) 백준 3052번 나머지 문제 (0) | 2023.02.22 |
(C++) 백준 2920번 음계 (0) | 2023.02.21 |
(C++) 백준 2908번 상수 [ reverse()활용] (1) | 2023.02.21 |