본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 무작위로 K개의 수 뽑기 (w/ Swift & Python)

배열에서 중복되지 않는 요소를 최대 k개까지 추출하는 코드를 짜는 문제로,

추출된 요소의 개수가 k보다 적다면, 남은 공간을 -1로 채우면 된다. 


무작위로 K개의 수 뽑기 (shortcuts)

 

language = swift

func solution(_ arr:[Int], _ k:Int) -> [Int] {
    
    var yeon: [Int] = []
    
    for i in arr{
        if yeon.count < k {
            if yeon.contains(i) == false {
                yeon.append(i)
            }
        }
    }
    if yeon.count < k {
        (yeon.count...(k-1)).forEach{ _ in  yeon.append(-1) }
    }
    return yeon
}

 

예를 들어, arr 배열이 [1, 2, 3, 2, 4, 5]이고 k가 3이라면, 함수는 [1, 2, 3]을 return 한다.

 

 

 

language = python

def solution(arr, k):
    yeon = []
    for i in arr:
        if i not in yeon:
            yeon.append(i)
        if len(yeon) == k:
            break

    return yeon + [-1] * (k - len(yeon))