본문 바로가기
프로그래밍/알고리즘 & 자료구조

[프로그래머스] 체육복 with 파이썬 / 복사

by Play_With 2024. 2. 16.
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/42862

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

# 포인트

1. 반복문 동안 remove() 해야 하므로, 복사본을 만들어 그것을 보면서 remove()

2. lost를 기준으로 reseve에서 찾아 lost를 제거하면, [1,3], [2]와 같이 남은 여분이 잃어버린 학생 2명 모두를 지원해주는 경우가 생길수도 있기 때문에 reserve에서도 지워줘야 한다.

def solution(n, lost, reserve):
    lost.sort()
    reserve.sort()

    for i in lost[:] :       # 복사본으로 내용 확인하면서 remove()하기
        if i in reserve :
            lost.remove(i)
            reserve.remove(i)
    
    for i in lost[:]:				
        if i-1 in reserve :
            lost.remove(i)
            reserve.remove(i-1)
        elif i+1 in reserve :
            lost.remove(i)
          	reserve.remove(i+1)

    return n-len(lost)

 

 

 

 

 

 

 

 

 

반응형

댓글