問題
http://community.topcoder.com/stat?c=problem_statement&pm=12758&rd=15704
解き方
問題文を、最終的にボールを置いた位置の状態にすると勘違いしてしまった。
ボールが左から順に与えられて、それを任意の位置に配置する、という
問題になる。
RGBそれぞれについて最初に出た時は左側に、次に出た時は右側においていけば
各色についてスコアは最初に出現した時は1、それ以降は2となる。
コード
class LittleElephantAndBalls {
public: int getNumber(string S) {
int ret=0;
int r=0,g=0,b=0;
FORE(i,0,S.size()){
ret+=min(r,2)+min(g,2)+min(b,2);
if(S[i]=='R')r++;
else if(S[i]=='G')g++;
else b++;
}
return ret;
}
};
public: int getNumber(string S) {
int ret=0;
int r=0,g=0,b=0;
FORE(i,0,S.size()){
ret+=min(r,2)+min(g,2)+min(b,2);
if(S[i]=='R')r++;
else if(S[i]=='G')g++;
else b++;
}
return ret;
}
};