본문 바로가기
개발/Algorithm

[프로그래머스/42862/level1/고득점kit] 체육복 - 그리디

by 킴과다페인(chae eun kim) 2023. 8. 14.

- 방향을 규칙적으로 정함

def solution(n, lost, reserve):    
    # 왼, 오 둘다 or 왼쪽에만 lost학생이 있는 경우 = 왼쪽에 옷 줌
    # 오른쪽에만 lost학생이 있는 경우 = 오른쪽에 옷 줌
    
    # 양쪽에 있는 경우 제거
    _reserve = set(reserve) - set(lost)
    _lost = set(lost) - set(reserve)
    
    for r in _reserve:
				#체육복 필요한 학생 없으면 끝
        if not lost:
            break
        
        if r-1 in _lost:
            _lost.remove(r-1)
        elif r+1 in _lost:
            _lost.remove(r+1)
    
    return n - len(_lost)