본문 바로가기
개발공부

[코딩테스트] 탐욕법(Greedy) - 프로그래머스 1. 체육복 (python)

by euuuuuz 2021. 9. 6.
728x90
SMALL
def solution(n, lost, reserve):
    answer = 0 
    answer = n - len(lost)
    
    lost.sort()
    reserve.sort()
    
    D = [i for i in lost if i in reserve]
    
    for d in D:
        lost.remove(d)
        reserve.remove(d)
    answer += len(D)
    
    
    for i in lost:
        if i-1 in reserve:
            reserve.remove(i-1)
            answer += 1
        elif i+1 in reserve:
            reserve.remove(i+1)
            answer += 1

    return answer

 

[솔루션]

 

1. 정렬

2. 특이 조건처리 ) 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.

-> D 라는 리스트로 교집합을 리스트 형태로 구해준뒤,

-> 먼저 제거를 하고 greedy를 위한 for문을 돌린다.

 

 

 

LIST

'개발공부' 카테고리의 다른 글

[캐글스터디] kernel density estimation  (0) 2021.04.07
2. 깃허브(Github) 연동하기  (0) 2021.02.21
1. Visual Studio Code 설치  (0) 2021.02.21