본문 바로가기

프로그래머스 (Swift)/기초

[Day19-5] 무작위로 K개의 수 뽑기

문제

 

내 정답 코드

import Foundation

func solution(_ arr:[Int], _ k:Int) -> [Int] {
    var result:[Int] = []
    
    for value in arr {
        if result.count < k {
            if !result.contains(value) {
                result.append(value)
            }
        }
    }
    
    if result.count < k {
        (0..<k-result.count).map { _ in result.append(-1) }
    }
    return result
}

 

#

1. 처음에 Set를 사용하여 중복된 값을 없앴지만, 순서가 바뀌는 바람에 실패하였다.

2. contains를 사용하여 중복된 값이 없도록 새로운 배열을 만들고

3. 새로운 배열의 count가 k보다 작으면 남은 공간을 -1로 채워준다.


배운 기술