https://school.programmers.co.kr/learn/courses/30/lessons/42862#qna
def solution(n, lost, reserve):
n_lost = set(lost) - set(reserve) # 빌린옷을 입어야하는 그룹(내가 잃어버리고 내가 여분옷을 입는 경우는 뺀)
n_reserve = set(reserve) - set(lost) # 순수하게 빌려줄수 있는 그룹
for x in n_lost:
if x -1 in n_reserve: # 조건절을 쓸 때 x-1부터 하는게 아니면 오답나는것도 좀...
n_reserve.remove(x-1)
elif x + 1 in n_reserve:
n_reserve.remove(x+1)
# 둘다 해당 안되면 체육복을 빌릴 수가 없음
else:
n -= 1
return n
이분 풀이 참고해서 풀긴했는데 문제에 오류가 있는거 아닌지..
입력값 〉 5, [4, 5], [3, 4]
기댓값 〉 4
이경우 왜 기댓값이 4이지
4,5번이 잃어버리고 3,4빌려줄수 있으면
3이 4 빌려주고 4가 5 빌려주면 5명 다 체육복 입을수 있는데...?
본인이 잃어버렸지만 본인이 가지고 있는경우는 무조건 본인이 입어야 한다는 조건이 없으면 안되는거 아닌가..
[여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.]
이게 본인이 분실한 경우 본인이 입어야 하는 조건의 표현이라면 애매하다 ㅠ