문제 링크 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/42862?language=python3
나의 코드 (Python)
def solution(n, lost, reserve):
set_reserve = set(reserve) - set(lost) # 진짜 여분
set_lost = set(lost) - set(reserve) # 진짜 체육복이 필요한 사람
for i in set_reserve: # 진짜 여분 체육복으로 반복문
# 체육복이 필요한데 체육복이 있다면 진짜 체육복이 필요한 사람 -1
if i-1 in set_lost:
set_lost.remove(i-1)
elif i+1 in set_lost:
set_lost.remove(i+1)
return n-len(set_lost) # 전체 - 진짜 체육복이 필요한 사람
1. 진짜 여분 체육복을 구하고 진짜 체육복이 필요한 사람을 구한다. (list끼리 뺄 수 없으므로 set으로 변환)
2. 진짜 여분 체육복으로 체육복이 필요한 사람이 앞뒤로 있는지 판단 후 있으면 체육복이 필요한 사람 제거
3. 전체에서 체육복이 아직도 필요한 사람을 빼면 체육에 참여할 수 있는 인원이 남음
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 약수의 개수와 덧셈 (Python) (0) | 2022.03.27 |
---|---|
[프로그래머스] 실패율 (Python) (0) | 2022.03.27 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (Python) (0) | 2022.03.23 |
[프로그래머스] 없는 숫자 더하기 (Python) (0) | 2022.03.22 |
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.03.21 |
댓글