이숭간 공부기록
[프로그래머스] 파이썬 _ 체육복 본문
728x90
https://programmers.co.kr/learn/courses/30/lessons/42862
문제유형 : 그리디
문제풀이 :
- 여분을 가진 학생도 도난을 당할수 있다 라는 예외처리를 잘 해주어야함
- 이때 해당학생은 reserve와 lost에서 모두 제거해줘야함 ( 집합의 차집합연산 이용 )
- 나를 기준으로 앞에 애한테 줄수있는 상황이면 앞에애한테 먼저 주는식으로 reserve를 반복한다.
- 내가 만약 앞에 애와 뒤에애한테 모두 줄 수 잇는 상황일때 뒤에애한테 줘버리면 맨앞에애는 못받을수도잇는 상황이 되므로....
정답코드 :
def solution(n, lost, reserve):
lost = set(lost)
reserve = set(reserve)
# 여벌체육복을 가져온 학생이 체육복을 도난당했을경우 reserve에서 제외
common = lost & reserve
lost = list(lost - common)
reserve = list(reserve - common)
reserve.sort()
for i in reserve:
a,b = i-1, i+1
if a in lost:
lost.remove(a)
continue
if b in lost:
lost.remove(b)
return n-len(lost)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 파이썬 _ 정수 삼각형 (0) | 2021.07.04 |
---|---|
[프로그래머스] 파이썬 _ 2 x n 타일링 (0) | 2021.07.04 |
[프로그래머스] 파이썬 _ 불량 사용자 (2018 KAKAO WINTER INTERN) (0) | 2021.07.03 |
[프로그래머스] 파이썬 _ 순위 검색 (2021 KAKAO BLIND) (2) | 2021.07.03 |
[프로그래머스] 파이썬 _ 더 맵게 (0) | 2021.07.01 |