알고리즘/코드

[코딩테스트 고득점 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
반응형