프로그래머스) 체육복

Mongle·2020년 10월 10일
0

문제

첫 번째 접근

def solution(n, lost, reserve):
    answer = 0
    new_reserve = reserve[:]
    
    for lost_num in lost:
        for idx in range(lost_num - 1, lost_num + 2):
            if idx in new_reserve:
                new_reserve.remove(idx)
                break
    
    answer = n - len(lost) + (len(reserve) - len(new_reserve))
                
    return answer

5번, 12번이 통과되지 않아서 fail...

두 번째 접근

def solution(n, lost, reserve):
    answer = 0
    new_reserve = reserve[:]
    new_lost = lost[:]
    
    # 추가된 부분 여기부터
    for num in lost:
        if num in reserve:
            new_reserve.remove(num)
            new_lost.remove(num)
    print(new_reserve)
    # 여기까지
    
    for lost_num in new_lost:
        for idx in range(lost_num - 1, lost_num + 2):
            if idx in new_reserve:
                new_reserve.remove(idx)
                break
    print(n)
    print(lost)
    print(reserve)
    print(new_reserve)
    answer = n - len(lost) + (len(reserve) - len(new_reserve))
                
    return answer

체육복을 도난당한 학생이 여벌 옷을 가지고 있을 경우,
그 여벌 옷은 반드시 자기자신이 사용해야한다는 조건을 고려하여야 한다.

new_reserve와 new_lost를 만들어서 체육복을 도난당한 사람이 여벌 옷을 가지고 있는 경우 해당 번호를 삭제하고 다음 코드를 진행했다.

profile
https://github.com/Jeongseo21

0개의 댓글

관련 채용 정보