Algorithm/1일 1코테

[🤷‍♀️ 프로그래머스 Python] 체육복

대인보우 2020. 9. 23. 22:05
반응형

문제

programmers.co.kr/learn/courses/30/lessons/42862?language=python3

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번�

programmers.co.kr


첫번째 시도

def solution(n, l, r):
    answer = []
    
    n_list = [n for n in range(1,n+1)]

    for i in n_list:
        if i not in l and i not in r:
            answer.append(i)
    
    while 1:
        if len(l) == 0 or len(r) == 0:
            if len(r) > 0:
                for i in r:
                    answer.append(i)
                return len(answer)
            return len(answer)
        

        a = r.pop(0)
        b = l.pop(0)
        
        if a == b+1:
            answer.append(a)
            answer.append(b)
            continue
        elif a == b-1:
            answer.append(a)
            answer.append(b)
            continue 

    print(answer)

정확도 8.3 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

두번째 시도

def solution(n, l, r):
    
    all_list = [n for n in range(1, n+1)]
    find_list = []
    
    for i in l:
        all_list.remove(i)
    
    while True:
        if len(l) == 0 or len(r) == 0:
            for i in find_list:
                all_list.append(i)
            return len(all_list)
        
        a = l[0]
        b = r[0]
        
        if a == b-1 or a == b+1:
            find_list.append(a)
            l.pop(0)
            r.pop(0)

시간초과...^^

 

 

다른사람 풀이

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

 

[Python] 프로그래머스 - 체육복

- 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어

rain-bow.tistory.com

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)

이렇게 간단하다니

반응형