울음참고 개발공부
728x90

 

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

 

프로그래머스

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

programmers.co.kr

 

 


 

 

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int k) {
        Set<Integer> set = new HashSet<>();
        int[] result = new int[k];
        int index = 0;

        for (int num : arr) {
            if (!set.contains(num)) { 
                result[index++] = num;
                set.add(num);
            }

            if (index == k) 
                break;
        }

    
        while (index < k) {
            result[index++] = -1;
        }

        return result;
    }
}

 

 

 


 

List<> 에서 중복을 제거하는 방법 중 Set<> 를 이요하는 방법을 택했다.

Set<> 는 중복을 포함하지 않는 자료구조이다. 

 

이전에 나온적 없는 수라면 추가하고, k 개의 수가 이미 선택되었다면 break 을 통해 빠져나온다.

index 가 k보다 작은 수가된다면, 남은 부분을 -1로 채워준다. 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!