結果
| 問題 |
No.29 パワーアップ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-03-24 15:03:53 |
| 言語 | Kotlin (2.1.0) |
| 結果 |
AC
|
| 実行時間 | 361 ms / 5,000 ms |
| コード長 | 1,203 bytes |
| コンパイル時間 | 10,549 ms |
| コンパイル使用メモリ | 461,120 KB |
| 実行使用メモリ | 59,444 KB |
| 最終ジャッジ日時 | 2025-10-24 21:06:04 |
| 合計ジャッジ時間 | 19,547 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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()
}