알고리즘/프로그래머스
[프로그래머스] 체육복 - 파이썬
빙빙
2021. 7. 19. 08:12
def solution(n, lost, reserve):
#set으로 중복(같은거) 제거
lost2 = list(set(lost) - set(reserve))
reserve2 = list(set(reserve) - set(lost))
for i in reserve2:
if i-1 in lost2:
lost2.remove(i-1)
continue
elif i+1 in lost2:
lost2.remove(i+1)
continue
# print(lost2)
# print(reserve2)
answer = n - len(lost2)
return answer
와우우 이거 쉬운문젠데 오래걸렸다.
내 문제는 문제를 꼼꼼히 못 읽었다는 점!
# 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있다..
# 그렇다면..reverse에서 lost와 같은것이 있으면 제거
도난당한 학생이 여벌을 가져왔을 수 도 있기 때문에 lost와 reserve에서 같은 것을 제거해줘야한다.
따라서 set으로 같은거(중복)를 제거해 주었다.
그리고 for문으로 reserve 리스트원소들을 돌면서 전값과 후값들이 lost에 있으면 lost에서 제거해주었다.