https://school.programmers.co.kr/learn/courses/30/lessons/42862
def solution(n, lost, reserve):
# 다음 코드로도 가능
# _reserve = set(reserve) - set(lost)
# _lost = set(lost) - set(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:
if r-1 in _lost:
_lost.remove(r-1)
elif r+1 in _lost:
_lost.remove(r+1)
cnt = n - len(_lost)
# 다음 번호을 우선으로 배정할 경우
_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:
if r+1 in _lost:
_lost.remove(r+1)
elif r-1 in _lost:
_lost.remove(r-1)
# 두 가지 경우를 비교
return max(cnt, n - len(_lost))
#그리디 #greedy