※ 42862 체육복
https://school.programmers.co.kr/learn/courses/30/lessons/42862?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 해결 TIP
우선, 제한 사항 중 여벌 체육복을 가져온 학생이 도난당한 경우를 고려한 경우를 정리해준다. 이후 나눠줄 수 있는 앞 뒤 번호와 도난당한 학생의 번호를 비교하여 한 명씩 제외한다. 마지막으로, 남아있는 도난당한 학생 수를 전체에서 빼준다. 앞 번호부터 순차적으로 나눠주는 것이 중요함으로 정렬을 이용한다.
전체 코드
def solution(n, lost, reserve):
lost.sort()
reserve.sort()
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]
for r in _reserve:
f = r - 1
b = r + 1
if f in _lost:
_lost.remove(f)
elif b in _lost:
_lost.remove(b)
return n - len(_lost)
'Python > 그리디' 카테고리의 다른 글
[Algorithm] 삼성 SW 역량테스트 2015 하반기 1번 문제 바이러스 검사, 코드트리 | 파이썬 (그리디) (0) | 2024.08.09 |
---|---|
[Algorithm] 이코테 만들 수 없는 금액 | 파이썬 (그리디) (0) | 2024.06.24 |
[Algorithm] 프로그래머스 무지의 먹방 라이브 | 파이썬 (2019 KAKAO BLIND RECRUITMENT) (2) | 2024.06.24 |
[Algorithm] 백준 1931 회의실 배정 | 파이썬 (0) | 2024.06.20 |
[Algorithm] 백준 11047 동전 0 | 파이썬 (0) | 2024.06.20 |
댓글