reserve 리스트의 각각 값에서 -1, +1한 값이 lost에 있는지 탐색
값이 lost에 있다면 lost 리스트의 해당값 삭제
없다면 reserve의 다음값으로 진행
reserve와 lost는 중복이 없어야 함 / 또한, 여벌의 체육복을 가져온 학생이 있다면 (lost와 reserve에 중복된 값이 존재) 그 학생은 체육복을 못빌려주는 상태임 -> 중복값을 제거해야함!
왼쪽 (-1) 부터 탐색을 시작해야한다. -> 작은값부터 탐색해야 여벌 체육복이 남지 않도록 체육복을 빌려줄 수 있다고 생각하였다.
def solution(n, lost, reserve):
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)
print(solution(5, [2, 4], [1, 3, 5]))
print(solution(5, [2, 4], [3]))
print(solution(3, [3], [1]))