[Python3] 프로그래머스 체육복(set())

민갱·2023년 6월 25일

CT

목록 보기
15/35

체육복


def solution(n,lost,reserve)
	u = [i] * (n+2)
    for i in reserve:
    	u[i] +=1
    for j in lost:
    	u[i] -= 1
    for i in range(1,n+1):
    	if u[i-1] == 0 and u[i] == 2:
        	u[i-1:i+1] = [1,1]
        elif u[i] == 2 and u[i+1] == 0:
        	u[i:i+2] = [1,1]
    return len([x for x in u[1:-1] if x > 0])
	s = set(lost) & set(reserve) 교집합
    l = set(lost) - s #차집합 빌려야만 하는 친구들
	r = set(reserve) -s #차집합 빌려줄수 있는 학생들
    
    #sLost = set(lost) - set(reserve)
    #sReserve = set(reserve) - set(lost)
    
    for x in sorted(r):
    	if x -1 in 1:
        	l.remove(x-1)
       	elif x +1 in 1:
        	l.remove(x+1)
    return n - len(l)

dict 은 key & value로 맵핑 되어 있지만
set은 해시테이블에 이 요소가 있는지 없는지를 확인 할 수 있음(k&v로 맵핑 되어있지 않음)

왼쪽부터 오름차순으로 확인해 가기 떄문에, i-1 부터 조건을 줘야 한다.

profile
가보자고

0개의 댓글