Problem
Some people are standing in a row in a park. There are trees between them which cannot be moved. Your task is to rearrange the people by their heights in a non-descending order without moving the trees.
Example
For a = [-1, 150, 190, 170, -1, -1, 160, 180]
, the output should besortByHeight(a) = [-1, 150, 160, 170, -1, -1, 180, 190]
.
Input/Output
[input] array.integer a
If
a[i] = -1
, then theith
position is occupied by a tree. Otherwisea[i]
is the height of a person standing in theith
position.Guaranteed constraints:
5 ≤ a.length ≤ 15
,-1 ≤ a[i] ≤ 200
.[output] array.integer
Sorted array
a
with all the trees untouched.
*lst : Input 리스트의 값 중 0 이상인 값들을 정렬한 리스트를 저장한 변수입니다.
*err_lst : Input 리스트의 값이 -1인 값들의 인덱스 값을 저장한 변수입니다.
-1을 제외한 나머지 숫자들만 정렬하는 문제입니다.
-1을 제외한 숫자들을 sort() 함수를 통해 정렬하고, -1에 해당하는 인덱스 값을 나중에 삽입하는 방식으로 문제 해결이 가능합니다.
'Programming > Algorithm' 카테고리의 다른 글
[Algorithm] alternatingSums (0) | 2018.02.26 |
---|---|
[Algorithm] reverseParentheses (0) | 2018.02.20 |
[Algorithm] isLucky (0) | 2018.02.09 |
[Algorithm] commonCharacterCount (0) | 2018.02.09 |
[Algorithm] allLongestStrings (0) | 2018.02.09 |