[C++] 백준 17389 보너스 점수
반응형
1. 서론
간단한 구현 문제다.
2. 문제 풀이
문제 n개가 있다. n번째 문제는 n점이고 문제를 맞으면 보너스 점수를 1점씩 얻을 수 있다. 그리고 맞으면 점수가 1점씩 늘어나고 틀리면 다시 보너스 점수가 초기화된다.
예를 들어 8개의 문제가 있다고 가정했을 때,
문제: X O O O X O O X
점수: 0 2 3 4 0 6 7 0
보너스: 0 0 1 2 0 0 1 0
= 26점
(주의할 점: 문제를 맞으면 그때부터 보너스 점수가 0으로 생기고 다음 턴부터 1점씩 받을 수 있음)
문제가 O인 경우 그 문제 번호를 점수 총 합에총합에 더해주고 보너스 점수도 그때부터 X가 나올 때까지 카운트해 총합에 넣어주면 된다.
3. 코드 설명
#include <iostream>
#include <string>
using namespace std;
int main()
{
int i, n, cnt = 0, total = 0;
string s;
cin >> n >> s;
for (i = 0; i < n; i++)
{
if (s[i] == 'O')
{
total += i + 1;
total += cnt++;
}
else
cnt = 0;
}
cout << total << endl;
}
total은 점수의 총 합 값이고, cnt변수는 보너스 점수를 계산하는 변수다.
문자열로 문제를 받는다. 문제를 받은 후 'O'인 경우에 문제 번호인 i + 1번을 total에 더해주고 cnt하는 동시에 total에 보너스 값도 더해준다. O가 아닌 경우에는 cnt를 다시 0으로 초기화한다.
반응형
'Algorithm' 카테고리의 다른 글
[C++] 백준 17224 APC는 왜 서브태스크 대회가 되었을까? (0) | 2021.04.17 |
---|---|
[C++] 백준 16165 걸그룹 마스터 준석이 (0) | 2021.04.17 |
[C++] 백준 15312 이름 궁합 (0) | 2021.04.16 |
[C++] 백준 10539 수빈이와 수열 (0) | 2021.04.16 |
[C++] 백준 15969 행복 (0) | 2021.04.16 |