#include <iostream>
#include <string.h>
#include <vector>
#include <iostream>
int main()
{
int N = 0;
std::string s = {};
bool bCheck = false;
int iCount = 0;
int iMin = 500000;
std::cin >> N;
std::cin >> s;
for (int i = 0; i < N; ++i)
{
if (s[i] == 'B')
bCheck = true;
if (bCheck && s[i] == 'R')
++iCount;
}
bCheck = false;
iMin = std::min(iCount, iMin);
iCount = 0;
for (int i = N - 1; i >= 0; --i)
{
if (s[i] == 'B')
bCheck = true;
if (bCheck && s[i] == 'R')
++iCount;
}
bCheck = false;
iMin = std::min(iCount, iMin);
iCount = 0;
for (int i = 0; i < N; ++i)
{
if (s[i] == 'R')
bCheck = 1;
if (bCheck && s[i] == 'B')
++iCount;
}
bCheck = false;
iMin = std::min(iCount, iMin);
iCount = 0;
for (int i = N - 1; i >= 0; --i)
{
if (s[i] == 'R')
bCheck = 1;
if (bCheck && s[i] == 'B')
++iCount;
}
iMin = std::min(iCount, iMin);
std::cout << iMin;
return 0;
}
1. 오른쪽, 왼쪽 어떤색으로 모을지 정하고
2. 넘어가야 할 색이 있는지 확인
'오늘의 알고리즘' 카테고리의 다른 글
[C++] 백준 14719 빗물 (0) | 2022.05.31 |
---|---|
[C++] 백준 16234번 인구 이동 (0) | 2022.05.30 |
[C++] 백준 20437 문자열 게임 2 (0) | 2022.05.27 |
[C++] 백준 1522 문자열 교환 (0) | 2022.05.26 |
[C++] 백준 2206 벽 부수고 이동하기 (0) | 2022.05.25 |