본문 바로가기

알고리즘

프로그래머스 체육복 - 파이썬 (탐욕법)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def solution(n, lost, reserve):
    answer = n
    for i in [j for j in lost[::-1]]:
        if i in reserve:
            reserve.remove(i)
            lost.remove(i)
            continue
        elif i - 1 not in reserve and i + 1 not in reserve and i not in reserve: continue
        elif i - 1 in reserve or i + 1 in reserve or i in reserve:
            if i - 1 in reserve and i + 1 in reserve:
                if i - 1 in lost and i + 1 in lost: continue
                elif i - 1 in lost: continue
                elif i + 1 in lost: continue
                if i - 2 in lost:reserve.remove(i+1)
                elif i + 2 in lost: reserve.remove(i-1)
            elif i - 1 in reserve: reserve.remove(i-1)
            elif i + 1 in reserve: reserve.remove(i+1)
            lost.remove(i)
            continue
    return answer - len(lost)
cs