Scroll indicator done
728x90

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

 

프로그래머스

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

programmers.co.kr


(참고) set으로 중복 제거한다 . . 

remove를 하게 되면 index가 밀려서(?) 다음 항목이 제거 안됨 . . 
이걸 두 번이나 실수했네 ㅠㅠ 마지막에 arr.remove(-1) 이라고 썼다가 . . 
def solution(n, lost, reserve):
    arr = [0] * (n+2)

    for r in reserve: arr[r] += 1
    for l in lost: arr[l] -= 1

    for i in range(1, n+1):
        if arr[i] == 1:  # 1 5
            if arr[i-1] == -1:
                arr[i-1] += 1
                arr[i] -= 1
            elif arr[i+1] == -1:
                arr[i+1] += 1
                arr[i] -= 1

    answer = 0
    for i in range(1, n+1):
        if arr[i] != -1:
            answer += 1

    return answer
def solution(n, lost, reserve):
    new_reserve = set(reserve) - set(lost)
    new_lost = set(lost) - set(reserve)

    for r in new_reserve:
        if r-1 in new_lost:
            new_lost.remove(r-1)
        elif r+1 in new_lost:
            new_lost.remove(r+1)

    return n - len(new_lost)
728x90