Subscribed unsubscribe Subscribe Subscribe

yukicoder No.29 パワーアップ

Problem

Solution

サンプル1を元にテーブルを作ってみる。

5
1 2 3
4 5 6
7 8 9
10 1 2
3 4 5
1 2 3 4 5 6 7 8 9 10
1 +1 +1 +1
2 +1 +1 +1
3 +1 +1 +1
4 +1 +1 +1
5 +1 +1 +1
sum 2 2 2 2 2 1 1 1 1 1

 あるアイテムの数が2以上なら2より小さくなるまでそのアイテムの数を2ずつ減らす。「同じアイテム」を2つ揃えればパワーアップできるのでアイテム数が2ずつ減るごとに1パワーアップする。この処理を全部のアイテムに適用する。結果として、アイテムの数はそれぞれ0か1になる。  次に、その全てのアイテムの数の合計を求めて4で割る。「任意のアイテム」を4つ揃えるとパワーアップできるので商の値だけパワーアップする。

Code

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(reader.readLine());
        int[] items = new int[10];

        String[] line;
        for (int i = 0; i < N; i++) {
            line = reader.readLine().split(" ");
            for (int j = 0; j < 3; j++) {
                items[Integer.parseInt(line[j]) - 1] += 1;
            }
        }

        int powerUpTimes = 0;
        int fourItemsLevelUpCounter = 0;
        for (int i = 0; i < 10; i++) {
            while (items[i] >= 2) {
                items[i] -= 2;
                powerUpTimes += 1;
            }
            if (items[i] == 1) {
                fourItemsLevelUpCounter += 1;
            }
        }

        powerUpTimes += (fourItemsLevelUpCounter / 4);

        System.out.println(powerUpTimes);
    }
}

Remove all ads