380 - Insert Delete GetRandom O(1) (Java)
·
LeetCode
문제https://leetcode.com/problems/insert-delete-getrandom-o1/?envType=study-plan-v2&envId=top-interview-150 풀이set 의 형태에서, random 값을 뽑아낼 수 있는 자료구조를 만드는 문제이다. 우선 insert 와 remove 를 O(1)에 할려면 set이나 map과 같은 자료구조는 필수적으로 필요하다. 그리고 random 값을 O(1)로 뽑아내기 위해서는 리스트나 배열이 필수적이다. 해당 배열의 사이즈를 활용해서 랜덤 인덱스를 뽑고, 그 값에 한 번에 접근할 수 있으니 말이다. 난 map 과 배열의 조합으로 문제를 해결했다. 우선 배열의 끝을 가리키는 lastIdx 를 선언하고, 이를 -1로 초기화 한다. 다음은 ..