문제접근
•
처음 시작색을 기준으로 먼저 다 칠하고, 그와 반대되는 색들을 하나씩 칠함
놓쳤던 부분
•
B와 R중 더 많이 필요한 색을 기준으로 잡는 게 그리디 관점이라 생각함
◦
첫 시작의 색을 기준으로 잡아야 했음
◦
예)BRRRRB → answer : 2
코드
2912 KB
4 ms
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
int n;
string input;
int answer = 1;
int tmp = 0;
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
cin >> input;
for (int i = 1; i < n; i++)
{
if (input[0] != input[i])
tmp++;
else if (input[0] == input[i] && tmp != 0)
{
tmp = 0;
answer++;
}
}
if (tmp != 0)
answer++;
cout << answer;
return (0);
}
C++
복사