[プログラマー]ポンケンモン-Java,Java


難易度


レベル1

質問する


https://programmers.co.kr/learn/courses/30/lessons/1845

に答える


全部でN個のケースの中からN/2個を選択する方法はbacktrackingで実現し、問題を解いてからテスト7からタイムアウトした.
1級だけど考えが複雑すぎて簡単に考え直した
nums配列をsetに変更し、重複するphonkemonクラスを削除します.
setのsizeがN/2より大きいか等しい場合、N/2が答えより小さい場合、setのsizeは答えです.

コード#コード#



import java.util.HashSet;
import java.util.Set;

class Solution {
    public int solution(int[] nums) {

        Set<Integer> set = new HashSet<Integer>();
        for (int i : nums) {
            set.add(i);
        }

        if (set.size() >= nums.length / 2) {
            return nums.length / 2;
        } else {
            return set.size();
        }

    }
}