# 체육복 (Greedy) - 프로그래머스

Anna's blog·2021년 5월 3일
0

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

1단계인데도 어쩐지 가뿐히 풀리지 않았던 문제

[방법]

  • 체육복을 빌리는 주체와 빌려주는 주체 우선순위 설정을 정확히 해야 모든 테케가 통과된다.
    1순위. 자기자신한테 먼저 빌려주기. 즉 잃어버린 사람이, 여분도 가지고 있는 경우.
    2순위. 1순위를 제한 나머지 중에서, sort된 lost에 대해서 앞번호 부터, 빌릴 수 있는 두가지 경우(자신의 바로 앞번호, 바로 뒷번호)를 모두 확인한 후, 다음 잃어버린 사람으로 넘어간다.

[코드]

def solution(n, lost, reserve):
    lost.sort()
    reserve.sort()
    
    answer = n - len(lost)
    temp = lost[:]
    for i in temp :
        if i in reserve :
            answer += 1
            reserve.remove(i)
            lost.remove(i)
    
    for i in lost :
        if i-1 in reserve :
            answer += 1
            reserve.remove(i-1)
        elif i+1 in reserve :
            answer += 1
            reserve.remove(i+1)
    
    return answer
profile
개발 공부하는 1인

0개의 댓글