프로그래머스 체육복 (탐욕법 level 1)

정은경·2020년 8월 5일
0

1. 문제 설명

2. 나의 풀이

def solution(n, lost, reserve):
    answer = 0
    new_lost = [l for l in lost if l not in reserve]
    new_reserve = [r for r in reserve if r not in lost]
    answer = n - len(new_lost)
    print(f"answer: {answer} new_reserve: {new_reserve}, new_lost: {new_lost}")
    print("="*10)

    for nl in new_lost:
        # for idx, r in enumerate(new_reserve):
        #     if r-1 <= nl <= r+1:
        #         new_reserve[idx], answer = -1, answer + 1
        #         break
        for r in new_reserve:
            if nl == r:
                answer += 1
                new_reserve.remove(nl)
                break
            elif nl + 1==r:
                answer += 1
                new_reserve.remove(nl+1)
                break
            elif nl - 1==r:
                answer += 1
                new_reserve.remove(nl-1)
    return answer

3. 남의 풀이

def solution(n, lost, reserve):
    lost_new = [l for l in lost if l not in reserve]
    reserve_new = [r for r in reserve if r not in lost]
    answer = n - len(lost_new)
    for l in lost_new:
        for j, r in enumerate(reserve_new):
            if r-1 <= l <= r+1:
                reserve_new[j], answer = -1, answer + 1
                break
    return answer

4. 느낀 점

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글