컴퓨터과학/알고리즘_PS
[백준] 20365 - 블로그2
MG#
2022. 4. 25. 11:51
https://www.acmicpc.net/problem/20365
20365번: 블로그2
neighbor 블로그를 운영하는 일우는 매일 아침 풀고 싶은 문제를 미리 정해놓고 글을 올린다. 그리고 매일 밤 각각의 문제에 대하여, 해결한 경우 파란색, 해결하지 못한 경우 빨간색으로 칠한
www.acmicpc.net
한 번에 B 또는 R 을 쭉 칠하고 나머지 색을 중간중간 칠하면 최소가 됩니다. 하지만 그 최소를 B, R 둘 다 해보아야 알기 때문에 연속되지 않은 B, R 수를 세고 둘 중 최소를 구해주면 됩니다.
#include <iostream>
using namespace std;
int n, b, r;
string s;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> s;
char c = s[0];
if (c == 'B')
b++;
else
r++;
for (int i = 1; i < n; i++) {
if (c == 'B') {
if (c != s[i]) {
r++;
c = s[i];
}
} else {
if (c != s[i]) {
b++;
c = s[i];
}
}
}
int ans = min(b + 1, r + 1);
cout << ans << "\n";
return 0;
}