L1 : 체육복 Python

jhyunn·2023년 1월 20일
0

Programmers

목록 보기
45/69

L1 : 체육복 Python

https://school.programmers.co.kr/learn/courses/30/lessons/42862

def solution(n, lost, reserve):
    # 다음 코드로도 가능
    # _reserve = set(reserve) - set(lost)
    # _lost = set(lost) - set(reserve)
    
    # 이전 번호를 우선으로 배정할 경우
    _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:
        if r-1 in _lost:
            _lost.remove(r-1)
        elif r+1 in _lost:
            _lost.remove(r+1)
    cnt = n - len(_lost)
    
    # 다음 번호을 우선으로 배정할 경우
    _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:
        if r+1 in _lost:
            _lost.remove(r+1)
        elif r-1 in _lost:
            _lost.remove(r-1)
    
    # 두 가지 경우를 비교
    return max(cnt, n - len(_lost))

#그리디 #greedy

profile
https://github.com/Sungjeonghyun

0개의 댓글