항상 하는 말이지만 for while 정말 중요하고 if에서 조건을 어떻게 달아주느냐가 핵심이다.
탐욕법을 활용한다.
문제해석
def solution(n, lost, reserve):
reserve_set = set(reserve)-set(lost)
lost_set = set(lost)-set(reserve)
for reserve_person in reserve_set:
if reserve_person-1 in lost_set:
lost_set.remove(reserve_person-1)
elif reserve_person+1 in lost_set:
lost_set.remove(reserve_person+1)
return n-len(lost_set)
for 반복문을 통해서 lostlist를 계속 재초기화 해서 마지막에 lost 함수 개수를 빼라.
def solution(n, lost, reserve):
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]
for r in _reserve:
f = r - 1
b = r + 1
if f in _lost:
_lost.remove(f)
elif b in _lost:
_lost.remove(b)
return n - len(_lost)