Problem From.
https://leetcode.com/problems/smallest-number-in-infinite-set/
오늘 문제는 가장 작은 원소만을 반환하는 SmalllestInfiniteSet 을 구현하는 문제였다.
문제는 간단하게 풀 수 있었는데, 먼저 문제의 제한 사항에 1000 개까지의 콜이 들어온다고 하였으니 1~1000까지의 수를 넣은 set 을 선언해두고, popSmallest 함수에는 set 의 min 원소를 반환하도록 만들어두고 add 함수에서는 set 에 add 해주는 방식으로 구현하였다. (set 은 내부적으로 알아서 중복 제거를 한다.)
class SmallestInfiniteSet() {
val hashSet = hashSetOf<Int>()
init {
for(i in 1..1000) {
hashSet.add(i)
}
}
fun popSmallest(): Int {
val temp = hashSet.min()!!
hashSet.remove(temp)
return temp
}
fun addBack(num: Int) {
hashSet.add(num)
}
}
/**
* Your SmallestInfiniteSet object will be instantiated and called as such:
* var obj = SmallestInfiniteSet()
* var param_1 = obj.popSmallest()
* obj.addBack(num)
*/