[프로그래머스] 체육복 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/42862
# 프로그래머스 | 체육복
def solution(n, lost, reserve):
#여벌 가져온 학생이 도난당한 번호 찾기
spare_stolen = set(lost) & set(reserve)
#spare_stolen로 겹치는거 제거해주기
# +정렬해주기!!!(앞번호부터 비교해야하기 때문)
lost = sorted(list(filter(lambda x : x not in spare_stolen, lost)))
reserve = sorted(list(filter(lambda x : x not in spare_stolen, reserve)))
#lost만큼 for문 돌려주기
#여벌을 못빌리면 n = n - 1 해주기
for i in lost:
# (학생 번호 - 1) 이 reserve에 있으면 reserve에서 (학생번호 - 1) 제거
if (i-1) in reserve:
reserve.remove(i-1)
# (학생 번호 + 1) 이 reserve에 있으면 reserve에서 (학생번호 + 1) 제거
elif (i+1) in reserve:
reserve.remove(i+1)
# 위에 두 조건 경우(if, elif)는 여별을 빌렸으므로 n에서 -1 하지 않아도되지만
# else의 경우는 빌리지 못했으므로 n에서 -1을 해야한다
else:
n -= 1
return n
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 크기가 작은 부분 문자열 - Lv.1 (21) | 2023.08.15 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 - Lv.1 (21) | 2023.08.14 |
[프로그래머스] 음양 더하기 - Lv.1 (20) | 2023.08.14 |
[프로그래머스] 로또의 최고 순위와 최저 순위 - Lv.1 (1) | 2023.08.14 |
[프로그래머스] 콜라츠 추측 - Lv.1 (25) | 2023.08.14 |