프로그래머스 코딩테스트/Python

[프로그래머스] 체육복 Python

Coding-Su 2024. 7. 5. 14:33
728x90

제목

[프로그래머스] 체육복 

정답

def solution(n, lost, reserve):
    answer = 0
    more = []
    lost.sort()
    reserve.sort()
    for i in range(0, len(reserve)):
        for j in range(0, len(lost)):
            if reserve[i] == lost[j]:
                lost[j] = -1
                reserve[i] = -1
                break
    
    for i in range(0, len(reserve)):
        more = [reserve[i]-1, reserve[i]+1]
        for j in range(0, len(lost)):
            if more[0] == lost[j]:
                lost[j] = -1
                reserve[i] = -1
                break
            elif more[1] == lost[j]:
                lost[j] = -1
                reserve[i] = -1
                break
            
    answer = n - len(lost) + lost.count(-1)
    print(lost)
    return answer

우선 체육복이 2개 이지만 도난당하여 다른 학생에게 빌려줄 수 없는 학생부터 제외시켜주었습니다.

그 다음에 for문을 통하여 reserve에 있는 학생이 빌려줄 수 있는 학생이 lost에 있으면 둘다 -1을 해서 중복을 막아주었고

마지막에는 전체 학생에서 lost 학생을 빼고 reserve 학생이 빌려준 lost학생을 더하여 답을 구했습니다.

728x90