코딩코딩

[프로그래머스] level1 체육복 - 파이썬(Python) 풀이

Jerry Jun 2020. 9. 25. 16:51
728x90

문제


프로그래머스-체육복





코드


def solution(n, lost, reserve):

    answer = 0

    lost_1 = lost

    lost = list(set(lost) - set(reserve))

    reserve = list(set(reserve) - set(lost_1))

    for i in range(len(reserve)):

        if(reserve[i]-1 in lost):

            del lost[lost.index(reserve[i]-1)]

        elif(reserve[i]+1 in lost):

            del lost[lost.index(reserve[i]+1)]

    answer = n-len(lost)

    return answer




코드풀이


n : 총 학생 수

lost : 체육복을 잃어버린 사람의 배열

reserve : 여벌의 체육복을 가진 사람의 배열

answer : 체육복을 입은 사람의 수


체육복을 잃어버린 사람에게 여벌을 가진 사람의 1 만큼 범위안에 있으면 빌려줄 수 있다.

여기에서 알아둘 것은 도난당한 학생이 여벌의 체육복을 가졌을 수도 있다는 것이다.

나는 set을 사용하여 집합으로 그러한 것을 걸러냈다.

그리고 여벌의 체육복을 가지고 있는 배열의 길이만큼 반복문을 시작해 1의 범위를 탐색하여 있으면 빌려주도록 하였다.


프로그래머스_체육복

프로그래머스_표지






300x250