나 JAVA 봐라

프로그래머스 폰켓몬 본문

코딩테스트/해시

프로그래머스 폰켓몬

cool_code 2023. 12. 21. 21:09

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

  • 최대한 겹치지 않도록 여러 종류의 폰켓몬을 골라야 하는 문제임으로, 종류(int)가 담겨있는 배열을 해시셋에 넣어서 중복되는 값이 없도록 했습니다.
  • hs.size() 는 포켓몬 종류가 몇 개 인지를 나타낸다. 
  • 최대한 많은 종류를 고르더라도 nums.length/2를 넘길 수 없으므로
    1. nums.length/2 > hs.size() 인 경우 :  hs.size() 리턴
    2. 나머지의 경우 :  nums.length/2 리턴
package yejin.song;
import java.util.HashSet;

public class PGS_폰켓몬 {

    public static void main(String[] args) {
        System.out.println(solution(new int[]{3,3,3,2,2,4}));
    }

    public static int solution(int[] nums) {
        HashSet<Integer> hs = new HashSet<>();

        for (int num : nums){
            hs.add(num);
        }

        if (nums.length/2 < hs.size()) return nums.length/2;

        return hs.size();
    }
}

'코딩테스트 > 해시' 카테고리의 다른 글

[프로그래머스] 전화번호목록  (1) 2023.12.21