[프로그래머스 파이썬] 체육복

일단 해볼게·2023년 1월 20일
0

프로그래머스

목록 보기
7/106

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

def solution(n, lost, reserve):
    # 전체 학생 수, 도난당한 학생 번호 배열, 여벌 체육복 가져온 학생 번호 배열
    
    # 여벌 체육복을 가져온 학생이 체육복을 도난 당했을 경우
    # 리스트로 하면 에러나서 set으로 차집합 연산 
    set_reserve = set(reserve) - set(lost) 
    set_lost = set(lost) - set(reserve)

    for i in set_reserve:
        if i - 1 in set_lost:
            set_lost.remove(i - 1) 
        elif i + 1 in set_lost:
            set_lost.remove(i + 1)
            
    return n - len(set_lost) # 전체 길이 - 도난 당한 학생 수

list끼리 - 연산은 안된다. set으로 하면 차집합 연산 수행
set의 remove는 O(1)

참고
https://rain-bow.tistory.com/30

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글