슬기로운 코테 생활
[프로그래머스] 체육복
vhrehfdl
2020. 10. 24. 13:38
* 문제
programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
* 문제 풀이
- 첫째, lost와 reserve에 중복되는 요소를 제거한다.
- 둘째, lost와 reserve를 정렬한다.
- 셋째, 여벌의 체육복을 가지고 있는 학생의 좌측부터 채워나간다.
* 생각
- 아이디어는 간단한데 실수를 많이 했다.
- set을 사용해 파이썬 리스트에 있는 요소 중 중복 값을 제거하는 방법을 알게되었다.
* 코드
def solution(n, lost, reserve):
temp_lost = list(set(lost) - set(reserve))
temp_reserve = list(set(reserve) - set(lost))
lost = temp_lost
reserve = temp_reserve
lost.sort()
reserve.sort()
for i in range(0, len(reserve)):
if reserve[i] - 1 in lost:
lost.remove(reserve[i] - 1)
pass
elif reserve[i] + 1 in lost:
lost.remove(reserve[i] + 1)
pass
if len(lost) == 0:
break
answer = n - len(lost)
return answer