본문 바로가기

알고리즘

[프로그래머스] 배열의 원소 삭제하기

https://school.programmers.co.kr/learn/courses/30/lessons/181844?language=swift 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

두 개의 배열에서 하나의 배열을 빼는 기초 문제입니다. 😋

arr 배열에 delete_list 요소들을 모두 제거해 주면 answer~!

 

풀이

import Foundation

func solution(_ arr:[Int], _ delete_list:[Int]) -> [Int] {
    return arr.filter { !delete_list.contains($0) }
}

 

참고로 contains는 O(n)이다.

 


+ Set을 이용하여 O(n^2) -> O(n)으로 만들기 

func solution(_ arr:[Int], delete_list:[Int]) -> [Int] {
    let deleteSet = Set( delete list)
    return arr.filter { !deleteSet.contains($0) }
}

10배 차이나는 케이스도 있었다. wow

반응형