처음 푼 답
def solution(n, lost, reserve):
answer = 0
students = [0 for i in range(n)]
for l in lost:
students[l-1] -= 1
for r in reserve:
students[r-1] += 1
for i in range(len(students)):
if students[i] >= 0:
answer += 1
elif students[i-1:i] == [1] and students[i] == -1:
students[i] = 0
students[i-1] = 0
answer += 1
elif students[i+1:i+2] == [1] and students[i] == -1:
students[i] = 0
students[i+1] = 0
answer += 1
return answer
다시 푼 답
def solution(n, lost, reserve):
set_lost = set(lost) - set(reserve)
set_reserve = set(reserve) - set(lost)
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)
그리디에 익숙하지 않은 것 같다. 연습해야겠다.