프로그래머스 : 포켓몬 [Java]

이동엽·2022년 11월 4일
1

코딩테스트

목록 보기
9/9

프로그래머스를 통해 해시 알고리즘 문제 중 포켓몬을 푼 과정을 기록합니다.


💡 문제 파악

포켓몬의 종류가 담긴 배열 nums가 있고 이 배열의 길이를 이용해 최댓값(nums / 2)을 구할 수 있다.


💡 알고리즘 풀이 순서

  1. 최대값을 구하기 위해 주어진 배열 nums의 length를 2로 나눈 값을 max에 대입한다.
  2. 중복을 제거한 값을 구하기 위해 Set을 이용해서 nums에 있는 값들을 담아준다.
    → 이때, Set은 집합 기반이기에 중복을 알아서 제거하며, 빠른 탐색을 위해 HashSet을 이용하였다.
  3. 중복을 제거한 Set의 크기가 max보다 크면 max를, 작으면 Set 사이즈를 리턴한다.

💡 정답 코드

import java.util.HashSet;

public class Solution {
    public int solution(int[] nums) {
        int max = nums.length / 2;

        HashSet<Integer> hashSet = new HashSet<>();

        for (int n : nums) {
            hashSet.add(n); //중복 제거
        }

        if (max >= hashSet.size()) {
            return hashSet.size();
        } else {
            return max;
        }
    }
}

profile
백엔드 개발자로 등 따숩고 배 부르게 되는 그 날까지

0개의 댓글