ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 체육복
    Algorithm/프로그래머스 2021. 5. 1. 00:17

    1. 문제 📚

     

    2. 입출력 예 📋

    3. 알고리즘 ✅

    • 제한사항에 여벌 체육복을 가져온 사람도 도난 당할 수 있다 라고 적혀있다 이점을 고려하여, 중복되는 것들은 빼준다.
    • 우선순위를 왼쪽으로 둘지, 오른쪽으로 둘지 선택한다
    • n = 5, lost = [2, 4], reserve[3, 5] 가정
    • 오른쪽으로 우선순위를 두게 되면, 최대값이 나올 수 없다. 따라서 왼쪽부터 우선순위를 둬야한다.

    • 여분학생 -1 값과 도난 학생 이 같으면 도난학생을 없앤다.

    • 총 학생의 수에서 도난 학생의 수를 빼준다. 

    4. 소스코드 💻

    def solution(n, lost, reserve):
        set_reserve = set(reserve) - set(lost)
        set_lost = set(lost) - set(reserve)
        for i in set_reserve:
            if i-1 in set_lost:
                set_lost.remove(i-1)
            elif i+1 in set_lost:
                set_lost.remove(i+1)
    
        return n-len(set_lost)

    5. 새로알게 된 것 ✏️

    set 자료형은 중복을 허용하지 않는다. list는 -연산이 안되지만, set은 -연산이 가능하다.

     

     

     

    출처
    https://rain-bow.tistory.com/entry/Python-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%B2%B4%EC%9C%A1%EB%B3%B5

    'Algorithm > 프로그래머스' 카테고리의 다른 글

    [Python] 폰켓몬  (0) 2021.05.03
    [Python] 2016년  (0) 2021.05.01
    [Python] 모의고사  (0) 2021.04.29
    [Python] 완주하지 못한 선수  (0) 2021.04.27
    [Python] 크레인 인형뽑기  (0) 2021.04.26

    댓글

Designed by Tistory.