[프로그래머스] Lv1. 체육복

3098 단어 pspythonps

문제

접근 방법

  • 도난 당한 사람과 여벌의 체육복이 있는 사람 중 중복을 제거해 진짜 체육복을 빌려줄 수 있는 사람과 필요한 사람만 남김
  • 여벌의 체육복이 있는 사람은 자신보다 "앞번호" 사람에게 먼저 체육복을 빌려줌

나의 풀이

def solution(n, lost, reserve):

    new_reserve = [x for x in reserve if x not in lost]
    new_lost = [x for x in lost if x not in reserve]
    
    new_reserve = sorted(new_reserve)
    new_lost = sorted(new_lost)
    
    for i in new_reserve:
        if i-1 in new_lost:
            new_lost.remove(i-1)
            
        elif i+1 in new_lost:
            new_lost.remove(i+1)
            
    return n - len(new_lost)

정렬과 반복문 도는 순서 등등 때문에 틀리는 테스트 케이스가 많아 여러번 고쳐야했다.
문제를 대충 읽었을 때 크게 어려운 문제는 아니지만.. 좀 까다로운 것 같다.

다른 사람의 풀이

테스트 케이스가 추가되면서 참고할만한 다른 사람의 풀이가 없다.

좋은 웹페이지 즐겨찾기