class Solution {
public int solution(int[] nums) {
int answer = 0;
HashMap<Integer, Integer> hm = new HashMap<Integer, Integer>();
for(int i = 0; i < nums.length; i++) {
if(hm.containsValue(nums[i])) continue;
else hm.put(i, nums[i]);
}
answer = (nums.length / 2 > hm.size() ? hm.size() : nums.length / 2);
return answer;
}
}
해시 사용하는 문제
=========================================================
class Solution {
public int solution(int[] nums) {
int answer = 0;
ArrayList<Integer> al = new ArrayList<>();
for(int i = 0; i < nums.length; i++) {
if(al.contains(nums[i])) continue;
else al.add(nums[i]);
}
answer = (nums.length / 2 > al.size() ? al.size() : nums.length / 2);
return answer;
}
}
ArrayList로 바꾼 코드
===python code===
def solution(nums):
answer = 0
get = []
half = len(nums) / 2
for a in nums:
if a in get:
continue
else:
get.append(a)
if len(get) > half:
answer = half
else:
answer = len(get)
return answer
다른 사람이 푼 우수한 코드
def solution(nums):
return min(len(nums)/2, len(set(nums)))