자라는 개발자/문제풀이
백준 c++ 17164 Rainbow Beads
자란다
2022. 7. 1. 13:03
728x90
반응형
17164 Rainbow Beads
문제풀이
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void fast_io(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int n,leng=1,maxlen;
string str;
void lenset()
{
if(leng>maxlen)
maxlen = leng;
leng = 1;
}
int main(void)
{
fast_io();
cin >> n >> str;
for (int i = 1; i < n;i++)
{
if ((str[i - 1] == 'V' && str[i] == 'R')
|| (str[i - 1] == 'R' && str[i] == 'V'))
lenset();
else if ((str[i - 1] == 'V' && str[i] == 'B')
|| (str[i - 1] == 'B' && str[i] == 'V'))
lenset();
else if (str[i - 1] == str[i])
lenset();
else
leng++;
}
cout << max(leng,maxlen);
}
연속된 문자열 & violet 과 blue & violet 과 red
위의 세 가지 경우를 걸렀다.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void fast_io(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int n,leng=1,maxlen;
string str;
void lenset()
{
if(leng>maxlen)
maxlen = leng;
leng = 1;
}
int main(void)
{
fast_io();
cin >> n >> str;
for (int i = 1; i < n;i++)
{
if ((str[i - 1] == 'R' && str[i] == 'B')
|| (str[i - 1] == 'B' && str[i] == 'R'))
leng++;
else
lenset();
}
cout << max(leng,maxlen);
}
두개 다 되네..
728x90
반응형