도움이 될지 모르겠네요. 왼손님 코드는 뭐시냐 그분이 저보다 더 잘 짜시겠죠. 답이 있다고 하니 굳이 넣지는 않겠습니다.
def solution(array, commands):
ans = []
for cmd in commands:
start, end, k = cmd
part = sorted(array[start-1:end])
ans.append(part[k-1])
return ans
파이썬은 리스트에서 슬라이싱(slicing)
을 지원해서 이 문제가 무식하게 쉽습니다. 슬라이싱 할 때 특정 위치마다 -1
을 해야한다는 것만 헷갈리지 않으면 될 것 같아요.
def solution(N, lost, reserve):
lost, sorted_reserve = sorted(lost), sorted(reserve)
reserve = []
# 문제 그 어디에도 목록이 정렬되어 있을 것이라는 희망을 품게 하는 문장은 없습니다.
for r in sorted_reserve:
if r in lost:
lost.pop(lost.index(r))
else:
reserve.append(r)
for r in reserve:
if (r-1) in lost:
lost.pop(lost.index(r-1))
elif (r+1) in lost:
lost.pop(lost.index(r+1))
return N - len(lost)
이 문제는 사실 생각보다 간단합니다. 너무 어렵게 고민하면 오히려 안 풀리는 것 같아요. 이 문제는 다른 분들이 어떻게 풀었을지 개인적으로 궁금하거든요? 저도 한 10분 이상 썼어요. 푸신 분들 중에 기발하게 푸신 분들 있으면 코드 공유 부탁해도 될까요? 미리 감사해요 :)