자료구조 & 알고리즘/프로그래머스
Level 0. 무작위로 K개의 수 뽑기
diesuki4
2023. 5. 2. 05:42
Level 0. 무작위로 K개의 수 뽑기
배열의 인덱스와 값을 활용해 O(1) 시간에 중복을 확인했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr, int k)
{
int* p = new int[100'001]();
vector<int> answer(k, -1);
int i = 0;
for (int e : arr)
{
if (k <= i)
break;
if (p[e] == 0)
{
++p[e];
answer[i++] = e;
}
}
delete [] p;
return answer;
}