[프로그래머스] 폰켓몬 - Java, 자바

Kim Ji Eun·2022년 3월 24일
0

난이도

레벨 1

문제

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

풀이

총 N 마리의 폰켓몬 중에서 N/2마리를 고르는 방법을 백트래킹으로 구현했고 문제를 풀었더니 테스트 7부터 시간초과가 났다.
레벨 1인데 너무 복잡하게 생각한 것 같아서 심플하게 다시 생각해봤다.

nums 배열을 set으로 바꿔 중복된 폰켓몬 종류를 제거했다.
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();
        }

    }
}
profile
Back-End Developer

0개의 댓글