알고리즘/코드
[코딩테스트 고득점 Kit] 해시 2 - 폰켓몬
MOVE🔥
2023. 1. 3. 21:04
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/1845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제의 핵심은 배열의 중복제거이다.
Hash 카테고리 이므로 HashSet을 이용하여 풀어보기로 한다.
JAVA
import java.util.*;
class Solution {
public int solution(int[] nums) {
// int to Integer
Integer[] IntegerNums = Arrays.stream(nums).boxed().toArray(Integer[]::new);
// HashSet으로 중복제거
HashSet<Integer> numSet = new HashSet<Integer>(Arrays.asList(IntegerNums));
if (nums.length/2 > numSet.size()) {
return numSet.size();
}else{
return nums.length/2;
}
}
}
python
python set 함수 이용
def solution(nums):
#받은 배열 중복 제거
arr = list(set(nums))
if len(arr) > len(nums)/2 :
return len(nums)/2
else:
return len(arr)
728x90
반응형