문제설명

입출력 예

Untitled

내 문제 풀이

def solution(n, lost, reserve):
    answer = 0
    lost.sort()
    lost_dif = list(set(lost).difference(reserve))
    reserve_dif = list(set(reserve).difference(lost))
    lost_n = len(lost_dif)
    for i in lost_dif:
        if (i-1) in reserve_dif:
            lost_n -= 1
            reserve_dif.remove(i-1)
        elif (i+1) in reserve_dif:
            lost_n -= 1
            reserve_dif.remove(i+1)
    answer = n - lost_n
    return answer
  1. lost 학생의 앞뒤에 여벌의 체육복이 있는 학생이 있는지 확인
  2. 여벌의 체육복이 있는 학생이 있으면 그 학생은 reserve 배열에서 제거하고 체육복을 빌린 학생 또한 lost 배열에서 제거
  3. n - size(lost) 값을 리턴