結果
問題 | No.5 数字のブロック |
ユーザー | yo-kondo |
提出日時 | 2018-03-06 22:24:35 |
言語 | Kotlin (1.9.23) |
結果 |
AC
|
実行時間 | 450 ms / 5,000 ms |
コード長 | 1,590 bytes |
コンパイル時間 | 12,670 ms |
コンパイル使用メモリ | 432,112 KB |
実行使用メモリ | 62,872 KB |
最終ジャッジ日時 | 2024-11-20 13:59:41 |
合計ジャッジ時間 | 25,265 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 330 ms
60,244 KB |
testcase_01 | AC | 325 ms
60,288 KB |
testcase_02 | AC | 311 ms
56,968 KB |
testcase_03 | AC | 432 ms
60,708 KB |
testcase_04 | AC | 390 ms
60,440 KB |
testcase_05 | AC | 436 ms
62,820 KB |
testcase_06 | AC | 404 ms
60,488 KB |
testcase_07 | AC | 392 ms
60,696 KB |
testcase_08 | AC | 422 ms
60,496 KB |
testcase_09 | AC | 372 ms
60,612 KB |
testcase_10 | AC | 430 ms
60,640 KB |
testcase_11 | AC | 384 ms
60,428 KB |
testcase_12 | AC | 428 ms
60,676 KB |
testcase_13 | AC | 436 ms
60,608 KB |
testcase_14 | AC | 331 ms
60,420 KB |
testcase_15 | AC | 334 ms
60,356 KB |
testcase_16 | AC | 429 ms
62,768 KB |
testcase_17 | AC | 435 ms
62,804 KB |
testcase_18 | AC | 438 ms
62,872 KB |
testcase_19 | AC | 450 ms
62,796 KB |
testcase_20 | AC | 333 ms
60,276 KB |
testcase_21 | AC | 325 ms
60,380 KB |
testcase_22 | AC | 325 ms
60,240 KB |
testcase_23 | AC | 333 ms
60,364 KB |
testcase_24 | AC | 337 ms
60,368 KB |
testcase_25 | AC | 342 ms
60,364 KB |
testcase_26 | AC | 328 ms
60,244 KB |
testcase_27 | AC | 322 ms
60,340 KB |
testcase_28 | AC | 312 ms
56,976 KB |
testcase_29 | AC | 393 ms
60,664 KB |
testcase_30 | AC | 368 ms
60,516 KB |
testcase_31 | AC | 310 ms
56,856 KB |
testcase_32 | AC | 311 ms
56,960 KB |
testcase_33 | AC | 320 ms
56,856 KB |
コンパイルメッセージ
Main.kt:5:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:21:30: warning: parameter 'blockNum' is never used fun block(boxWidth: String?, blockNum: String?, blockWidth: String?): String { ^ Main.kt:25:9: warning: name shadowed: boxWidth val boxWidth = boxWidth?.toInt() ?: 0 ^ Main.kt:29:9: warning: name shadowed: blockWidth val blockWidth = blockWidth ^
ソースコード
/** * エントリポイント * @param args コマンドライン引数 */ fun main(args: Array<String>) { // readLine で標準入力から文字列を取得します。 val l = readLine() val n = readLine() val w = readLine() println(block(l, n, w)) } /** * 箱に入るブロックの数を計算して返します。 * @param boxWidth 箱の幅 * @param blockNum ブロックの数 * @param blockWidth 各ブロックの幅 */ fun block(boxWidth: String?, blockNum: String?, blockWidth: String?): String { // ?. でnullでない場合のみ後ろのメソッドを実行します。?. でメソッドを呼んだ場合は nullable が返ります。 // ?: (エルビス演算子)でnullの場合に右の値を返します。これで nullable から not null になります。 val boxWidth = boxWidth?.toInt() ?: 0 // map で List<String> を List<Int> に変換します。 // emptyList で空のListを返します。 val blockWidth = blockWidth ?.split(" ") ?.map { it.toInt() } ?: emptyList() var inBlockNum = 0 var inBlockWidth = 0 // sorted で List をソートします。 sortedDescending で降順にソートします。 val sortBlockWidth = blockWidth.sorted() // 小さいブロックから数えて、箱の幅を超えたら終了 for (i in sortBlockWidth) { if (i + inBlockWidth <= boxWidth) { inBlockNum++ inBlockWidth += i } else { break } } return inBlockNum.toString() }