1. 문제 설명
2. 나의 풀이
def solution(n, lost, reserve):
answer = 0
new_lost = [l for l in lost if l not in reserve]
new_reserve = [r for r in reserve if r not in lost]
answer = n - len(new_lost)
print(f"answer: {answer} new_reserve: {new_reserve}, new_lost: {new_lost}")
print("="*10)
for nl in new_lost:
# for idx, r in enumerate(new_reserve):
# if r-1 <= nl <= r+1:
# new_reserve[idx], answer = -1, answer + 1
# break
for r in new_reserve:
if nl == r:
answer += 1
new_reserve.remove(nl)
break
elif nl + 1==r:
answer += 1
new_reserve.remove(nl+1)
break
elif nl - 1==r:
answer += 1
new_reserve.remove(nl-1)
return answer
3. 남의 풀이
def solution(n, lost, reserve):
lost_new = [l for l in lost if l not in reserve]
reserve_new = [r for r in reserve if r not in lost]
answer = n - len(lost_new)
for l in lost_new:
for j, r in enumerate(reserve_new):
if r-1 <= l <= r+1:
reserve_new[j], answer = -1, answer + 1
break
return answer
4. 느낀 점