250 ○
500 未提出
1000 未提出
Rate 955 -> 789
250
public class LuckyCounter {
public int countLuckyMoments(String[] moments) {
int lucky = 0;
for(String s : moments) {
StringBuffer h = new StringBuffer(s.substring(0, 2));
StringBuffer m = new StringBuffer(s.substring(3));
if(h.toString().equals(m.toString())) {
lucky++;
continue;
}
if(h.toString().equals(m.reverse().toString())) {
lucky++;
continue;
}
if((h.toString().charAt(0) == h.toString().charAt(1)) && (m.toString().charAt(0) == m.toString().charAt(1))) {
lucky++;
}
}
return lucky;
}
private static void echo(Object out) {
System.out.println(out);
}
}StringBufferでreverseができるのを最近知って、使ってみたくて使ったらStringBufferはequalsが使えないの知らなくて時間が無駄にかかってしまった。今回Rateが大幅に下がった理由はこれ。
というか俺Javaを知らなさすぎだろ・・・普通に解いたほうが早かったね・・・
500
public class Starport {
public double getExpectedTime(int N, int M) {
int a = gcd(N, M);
return (double)(N - a) / 2.0;
}
private int gcd(int a, int b) {
if(b == 0) return a;
return gcd(b, a % b);
}
private static void echo(Object out) {
System.out.println(out);
}
}式がわかればこんなに簡単にかけるのか・・・まだよく理解してない。
0 件のコメント:
コメントを投稿