Imports System
Imports System.Linq
Imports System.Collections.Generic
Module ShortestRunProgram
Function FilterByFrequency(lst As List(Of Integer), k As Integer) As List(Of Integer)
' Count occurrences of each number
Dim counts = lst.GroupBy(Function(x) x).
ToDictionary(Function(g) g.Key, Function(g) g.Count())
' Keep only elements that appear at least k times
Return lst.Where(Function(x) counts(x) >= k).ToList()
End Function
' ------------------------------------------------------------
' MAIN PROGRAM
' ------------------------------------------------------------
Sub Main()
Dim lst As New List(Of Integer) From {
1, 2, 2, 3, 3, 3, 4, 4, 4, 4,
5, 5, 6, 7, 7, 7, 7, 8, 8, 8
}
Dim k As Integer = 3
Dim result = FilterByFrequency(lst, k)
Console.WriteLine(String.Join(", ", result))
End Sub
End Module
' run:
'
' 3, 3, 3, 4, 4, 4, 4, 7, 7, 7, 7, 8, 8, 8
'