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 件のコメント:
コメントを投稿