def solution(n, lost, reserve):
_lost = [i for i in lost if i not in reserve]
_reserve = [i for i in reserve if i not in lost]
_reserve.sort()
for i in _reserve:
if i-1 in _lost:
_lost.remove(i-1)
elif i+1 in _lost:
_lost.remove(i+1)
return n-len(_lost)
처음에는 lost, reserve 그대로 for 문에서 if i in lost
후 lost.remove
을 하니까 자꾸 테케 5, 12에서 실패해서 ㅠㅠ 한참을 헤메다가 질문 이것저것 보면서 해결하게 됐다.
https://programmers.co.kr/questions/21442
만약에 input이 3, [1,2], [2,3]
이면 2번 학생은 lost
랑 reserve
모두에 있어서 빌려줄 수 없는 상황인데 1번 학생부터 i
로 들어가서 2번 학생이 빌려주는 걸로 처리하는 게 되는 것...^^ 문제를 잘 읽어 보면 "남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다" 라고 써 있다. 그래서 먼저 중복을 처리해주고 3, [1], [3]
이걸로 풀어야 하는 것이었다.
데이터가 정렬되어 있다고 한 적도 없기 때문에 sort
처리도 해 줘야 했음
하 레벨1인데 시간을 너무 많이 썼다...
_lost = [i for i in lost if i not in reserve]
# lost 중 reserve에 포함되지 않은 값만을 _lost에 저장