학생 수, 체육복이 없는 학생 번호, 여분의 체육복이 있는 학생 번호가 주어질 때, 체육수업에 참석할 수 있는 학생의 수를 반환하는 함수 작성
def solution(n, lost, reserve):
reserve_set = set(reserve)-set(lost)
lost_set = set(lost)-set(reserve)
for r in reserve_set:
if r-1 in lost_set:
lost_set.remove(r-1)
elif r+1 in lost_set:
lost_set.remove(r+1)
return n-len(lost_set)
reverse_set
생성 (set
의 차집합 응용)lost_set
생성lost_set
에서 해당 번호 제거lost_set
에 남은 학생 수를 제하면cf) 이유는 확실하지 않으나, if
절의 r-1
과 r+1
의 순서를 바꿔서 실행해보면 20개의 테스트케이스 중 5개가 실패하게 되니 주의.