前回の記事で、Cランクぜんぜん解けないと言ってましたが、その日にランクアップしました。
枠で囲む問題でした。
スキルチェックの問題は解法を書けないので割愛。
というわけで、今日はpaizaの問題集から、Cランクの問題です。
この問題も、ずーっと解けなかったのですが、どこかで桁数が3の倍数かどうかで場合分けするという知見を得て、なるほど!と思い書き上げたのですが・・・・
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String N = sc.nextLine(); String[] num = N.split(""); int ketasu = num.length; if (ketasu % 3 == 0) { int i = 3; System.out.print(num[0] + num[1] + num[2] + ","); while (i < ketasu - 3) { System.out.print(num[i] + num[i + 1] + num[i + 2] + ","); i = i + 3; } System.out.print(num[i] + num[i + 1] + num[i + 2]); } else if (ketasu % 3 == 2) { int i = 2; System.out.print(num[0] + num[1] + ","); while (i < ketasu - 3) { System.out.print(num[i] + num[i + 1] + num[i + 2] + ","); i = i + 3; } System.out.print(num[i] + num[i + 1] + num[i + 2]); } else if (ketasu % 3 == 1) { int i = 1; System.out.print(num[0] + ","); while (i < ketasu - 3) { System.out.print(num[i] + num[i + 1] + num[i + 2] + ","); i = i + 3; } System.out.print(num[i] + num[i + 1] + num[i + 2]); } } }
いや、この問題、必ず3の倍数の桁数やんけ〜〜〜
一応解法を見てみたら、えらくシンプルで「???」となっていたのですが、問題文を読み返すと、3の倍数で割り切れる桁数の数字が入力されるとのこと・・・。
もうすっごい騙された気分。
でもこのコード十数分はかかったので、こちらで供養させていただきます。
たぶん他の問題で活きる・・・はず。