BEAKJOON

백준(8958번 OX퀴즈)풀이 C++

Shin_jisoo 2020. 12. 5. 22:59
728x90

www.acmicpc.net/problem/8958

 

8958번: OX퀴즈

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

www.acmicpc.net

1) 주석없는 VERSION

#include<iostream>
using namespace std;

int main() {
	int n;
	cin >> n;

	string s;

	for (int i = 0;i < n;i++) {
		cin >> s;

		int score = 0;
		int count = 0;

		for (int j = 0;j < s.length();j++) {
			if (s[j] == 'O') count++;
			else count = 0;
			score += count;
		}
		cout << score << "\n";
	}
	
}

2) 주석있는 VERSION

#include<iostream>
using namespace std;

int main() {
	int n;
	cin >> n; // 반복 횟수

	string s; // OX 문자열

	for (int i = 0;i < n;i++) {
		cin >> s;

		int score = 0;
		int count = 0; // O 연속 횟수 카운트

		for (int j = 0;j < s.length();j++) {
			if (s[j] == 'O') count++; // O 나올 때마다 count 1 증가
			else count = 0; // X 나올 경우 초기화
			score += count; // 누적
		}
		cout << score << "\n";
	}
	
}

 

❌주의 사항❌

score, count를 for문 안에서 그때그때 초기화