CodeSignal 12번 sortByHeight 문제풀이
·
알고리즘/CodeSignal
이 문제는 입력 수열에 -1으로 표시되는 나무들은 그 자리에 두고 나머지 사람들만 오름차순으로 정렬해 반환하는 문제입니다. def sortByHeight(a): treePos,copy=[],a[:] for i in range(copy.count(-1)): treePos.append(copy.index(-1)+i) del copy[copy.index(-1)] copy.sort() [copy.insert(i,-1) for i in treePos] return copy 전 나무들의 위치를 저장하면서 모두 빼준다음 사람들만 있는 수열을 정렬하고, 정렬한 수열에 나무들을 원래 위치에 넣어주었습니다. 이 코드는 for문에서 enumerate를 이용해 코드 길이를 줄일수 있습니다. 심심하시다면 한번 시도해보세요