[프로그래머스] LV1. 체육복- 파이썬

곌로그·2023년 10월 17일
0

[python]코딩테스트

목록 보기
21/34
post-thumbnail

문제 링크


문제 요약

그리디 문제 에 해당한다.
학생들의 번호는 체격 순. 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있음. 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들을 수 있게 하는 것이 목적! 여벌 체육복이 있는 사람도 도난 당할 수 있음.

문제 풀이


def solution(n, lost, reserve):
    
    # 중복되는 경우가 없으니까 제거
    pre_lost = set(lost) - set(reserve)
    _reserve = set(reserve) - set(lost)
    
    for num in _reserve:
        if num -1 in pre_lost: 
            _lost.remove(num-1)
        elif num+1 in _lost:
             _lost.remove(num+1)

    answer = n - len(_lost)
    return answer

📌 고려해야할 점

처음 문제 풀이 시에 여벌의 체육복이 있는 학생도 도난 당할 수 있다는 사실을 간과하고 코드를 짜서 왜 해결을 못하나 자괴감에 빠졌었다. 문제를 잘 읽었어야하는 .. 부분

  • 중복되는 부분이 없기 때문에 집합 연산 사용

0개의 댓글