알고리즘 공부/프로그래머스

(Java)프로그래머스 코딩테스트 연습 - 찾아라 프로그래밍 마에스터 - 폰켓몬

HRuler 2020. 11. 22. 19:34

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/1845?language=java

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

2. 나의 풀이

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = nums.length/2;
        
        ArrayList<Integer> arr = new ArrayList<Integer>();
        for(int i = 0; i < nums.length; i = i + 1) {
        	if(!arr.contains(nums[i])) {
        		arr.add(nums[i]);
        	}
        }
        //System.out.println(arr);
        if(answer > arr.size()) {
        	answer = arr.size();
        }
        
        return answer;
    }
}

3. 다른 사람 풀이

import java.util.HashSet;

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

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

            for(int i =0; i<nums.length;i++) {
                hs.add(nums[i]);
            }

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

            return hs.size();
    }
}