슬기로운 연구생활

[프로그래머스] 체육복 본문

슬기로운 코테 생활

[프로그래머스] 체육복

vhrehfdl 2020. 10. 24. 13:38

* 문제

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

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 

* 문제 풀이 

- 첫째, lost와 reserve에 중복되는 요소를 제거한다.

- 둘째, lost와 reserve를 정렬한다.

- 셋째, 여벌의 체육복을 가지고 있는 학생의 좌측부터 채워나간다.

 

* 생각

- 아이디어는 간단한데 실수를 많이 했다.

- set을 사용해 파이썬 리스트에 있는 요소 중 중복 값을 제거하는 방법을 알게되었다.

 

* 코드 

def solution(n, lost, reserve):
    temp_lost = list(set(lost) - set(reserve))
    temp_reserve = list(set(reserve) - set(lost))
    
    lost = temp_lost
    reserve = temp_reserve

    lost.sort()
    reserve.sort()
    
    for i in range(0, len(reserve)):
        if reserve[i] - 1 in lost:
            lost.remove(reserve[i] - 1)
            pass
        elif reserve[i] + 1 in lost:
            lost.remove(reserve[i] + 1)
            pass
        
        if len(lost) == 0:
            break
    
    answer = n - len(lost)
    return answer

 

Comments