배경
나는 강력한 자석 줄과 그들 사이에 많은 금속 물체를 가지고 있습니다. 자석은 어디로 끌어 당깁니까?
입력
입력 값은 음이 아닌 정수로 구성된 배열이며 하나 이상이 포함됩니다 1. 합리적인 형식을 사용할 수 있습니다.
0배열 의 s는 빈 공간을 1나타내고 s는 고정 자석을 나타냅니다. 다른 모든 숫자는 금속 물체로 자석에 의해 당겨집니다. 모든 물체는 가장 가까운 자석쪽으로 당겨지고 (타이가 있으면 오른쪽으로 당겨집니다) 자석이나 다른 물체에 부딪 칠 때까지 그 방향으로 이동합니다. 결국, 모든 물체가 자석 주위에 모여 있습니다. 개체의 순서가 유지됩니다.
산출
출력은 모든 물체가 가능한 한 가장 가까운 자석에 가깝게 당겨진 배열입니다. 입력과 동일한 형식이어야합니다.
예
배열을 고려하십시오
[0,0,2,0,1,1,0,2,0,3,0,5,0,1,0]
가장 왼쪽 2은 두 번째 자석처럼 첫 번째 자석 쌍으로 당겨집니다 2. 은 3네 단계 떨어져 양 방향으로 자석을 가지고, 그래서는 오른쪽으로 당겨됩니다. 은 5또한 오른쪽으로 당겨, 그것은 사이에 진행됩니다 3자석. 올바른 출력은
[0,0,0,2,1,1,2,0,0,0,0,3,5,1,0]
규칙과 득점
전체 프로그램이나 함수를 작성할 수 있습니다. 가장 낮은 바이트 수가 이기고 표준 허점은 허용되지 않습니다.
테스트 사례
[0,1,0] -> [0,1,0]
[1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0]
[7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0]
[1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1]
[1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0]
[1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> [1,2,3,4,5,6,7,0,0,0,8,9,10,11,1]
[12,3,0,0,1,0,1,3,0,0,6,12,0,0,0,1] -> [0,0,12,3,1,0,1,3,6,0,0,0,0,0,12,1]
1하는 것이 좋습니다.