体力的な限界&Top Coder SRM537
お昼は牛丼で。少し多いのでメガだったと思います。
作業場に誰もいないぐらいに残る。
雨だよー。そうかー・・・。
出てみれば霧雨でした。
後はjubeatちょいちょい(2クレ)やったり、プライベートストック買ってみたり。
3000円程度するラム酒ですが、バニラの芳醇な香りが良いです。
呑口もまろやか。40度とは思えないのでついつい飲んでしまいそうです。
こんな状況でしたが、TopCoderにも参加しました。ぎりぎりの参加だったように思います。
まずはeasy。確か名前が8文字で、母音が2つまでで、しかも同じ母音以外があるとダメだという条件を書くだけ。羅列するとソースが長くなってしまうので、短く書ける方法もあるかもしれない。
public class KingXNewBaby {
public String isValid(String name) {
int vcount = 0;
int fcount = 0;
boolean isinvalid = false;
char voyel = '0';
for(int i = 0 ; i < name.length() ; i++){
if(name.charAt(i) == 'a'){
if(voyel == '0' || voyel == 'a'){
voyel = 'a';
}else{
isinvalid = true;
break;
}
vcount++;
}else if(name.charAt(i) == 'i'){
if(voyel == '0' || voyel == 'i'){
voyel = 'i';
}else{
isinvalid = true;
break;
}
vcount++;
}else if(name.charAt(i) == 'u'){
if(voyel == '0' || voyel == 'u'){
voyel = 'u';
}else{
isinvalid = true;
break;
}
vcount++;
}else if(name.charAt(i) == 'e'){
if(voyel == '0' || voyel == 'e'){
voyel = 'e';
}else{
isinvalid = true;
break;
}
vcount++;
}else if(name.charAt(i) == 'o'){
if(voyel == '0' || voyel == 'o'){
voyel = 'o';
}else{
isinvalid = true;
break;
}
vcount++;
}else{
fcount++;
}
}
if(isinvalid == true){
return "NO";
}else if(vcount == 2 && fcount == 6){
return "YES";
}else{
return "NO";
}
}
}
mediumは通貨の問題。AとBの通貨があるけどXとYにしたい。
ただしX、YはA,Bの金貨の組み合わせの額を包含していなければいけない。
Xは与えられていて、Yが何通りあるか。組み合わせが無限ある場合は-1を返せ。
という条件分岐問題です。challengeされてしまったので、載せません。
by ddrer-yossi | 2012-03-17 23:45 | TopCoder