Algorithm : Programmers - 체육복

https://programmers.co.kr/learn/courses/30/lessons/42862

👉 문제

👉 해결

def solution(n, lost, reserve):
    reserve_set = set(reserve)-set(lost) # -> 여분
    lost_set = set(lost)-set(reserve)   # - > 잃어버림
    
    for i in reserve_set: # 여분들 
        if i-1 in lost_set:  # 잃어버린거 중에 i-1 있으면
            lost_set.remove(i-1) # i-1은 잃어버린건 지워라
        elif i+1 in lost_set: 
            lost_set.remove(i+1) # i+1은 잃어버린건 지워라
    
    # remove를 해서 배열에서 빼버림
    
    return n-len(lost_set) 

set의 차집합은 - 연산자difference 함수를 이용할 수 있다. 수학의 차집합과 동일한 연산을 한다. 다른 set이 가지고 있는 요소를 빼고 새 set을 반환한다.

>>> s1 = {1, 2, 3, 4, 5}
>>> s2 = {4, 5, 6, 7}
>>> s1 - s2
{1, 2, 3}

>>>s1.difference(s2)
{1, 2, 3}

ref.
https://ooyoung.tistory.com/105

링크텍스트

좋은 웹페이지 즐겨찾기