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)
시간초과...^^
다른사람 풀이
[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)
이렇게 간단하다니
반응형