본문 바로가기

목차 🡻


알고리즘/CodeSignal

CodeSignal 12번 sortByHeight 문제풀이

by ​​​​ 2020. 1. 20.

이 문제는 입력 수열에 -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를 이용해 코드 길이를 줄일수 있습니다.

심심하시다면 한번 시도해보세요