結果
| 問題 | No.29 パワーアップ |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-03-24 15:03:53 |
| 言語 | Kotlin (2.3.20) |
| 結果 |
AC
|
| 実行時間 | 193 ms / 5,000 ms |
| + 604µs | |
| コード長 | 1,203 bytes |
| 記録 | |
| コンパイル時間 | 11,438 ms |
| コンパイル使用メモリ | 494,840 KB |
| 実行使用メモリ | 54,452 KB |
| 最終ジャッジ日時 | 2026-07-15 22:04:09 |
| 合計ジャッジ時間 | 17,022 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 |
ソースコード
package yukicoder.no29
/**
* エントリポイント
* @param args コマンドライン引数
*/
fun main(args: Array<String>) {
val in1 = readLine()
val in2 = mutableListOf<String>()
var line: String?
line = readLine()
while (line != null) {
in2.add(line)
line = readLine()
}
println(powerUp(in1, in2))
}
/**
* パワーアップする最大回数を返します。
* @param num 敵を倒す回数
* @param itemList もらったアイテム
* @return パワーアップする最大回数
*/
fun powerUp(@Suppress("UNUSED_PARAMETER") num: String?,
itemList: List<String>): String {
var level = 0
// アイテムを1つのリストにまとめる
val item = mutableListOf<Int>()
for (v in itemList) {
val sp = v.split(" ").map { it.toInt() }
item.addAll(sp)
}
val group = item.groupBy { it }.filter { it.value.size >= 2 }
// マップをキーと値のペアでループする
for ((_, v) in group) {
// 同じアイテム2つで1レベル
level += v.size / 2
}
// 違うアイテム4つで1レベル
return (level + (item.size - level * 2) / 4).toString()
}