placeAt
음이 아닌 정수의 배열과 음이 아닌 정수인 인덱스를 취하는 함수 (예 :)를 작성하십시오 . 주어진 색인에 1을 배치하여 다른 항목을 한 자리 씩 이동하여 해당 자리를 비우고 0은 빈 자리를 나타냅니다.
- 원하는 색인의 항목이 0이면 1로 채 웁니다.
- 그렇지 않으면 색인 왼쪽에서 가장 가까운 0을 찾으십시오. 공백을 만들기 위해 항목을 한 자리 왼쪽으로 이동 한 다음 색인을 1로 채 웁니다.
- 왼쪽에 0이 없으면 오른쪽으로 동일하게 수행하십시오.
- 둘 다 가능하지 않은 경우 (예 : 0이없는 경우) 배열을 변경하지 않고 반환합니다.
항목은 인덱스가 0입니다. 함수 이름은 원하는 것이 될 수 있습니다.
예 :
(문자는 양의 정수 값을 나타냅니다.)
[a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, c, d, 0] place 2 is 0, just fill
[a, b, 0, c, d, 0] placeAt 3 // output [a, b, c, 1, d, 0] place 3 is filled, shift items left
[a, b, 0, c, d, 0] placeAt 0 // output [1, a, b, c, d, 0] place 0 is filled, can't shift left, shift items right
[a, b, 0, c, d, 0] placeAt 1 // output [a, 1, b, c, d, 0] place 1 is filled, can't shift left, shift items right
[0, a, b, 0, c, d, 0] placeAt 2 // output [a, b, 1, 0, c, d, 0] place 2 is filled, shift items left
[0, a, b, 0, c, d, 0] placeAt 4 // output [0, a, b, c, 1, d, 0] place 4 is filled, shift items left (notice you keep shifting up until a 0)
[0, 2, 0, 2] placeAt 3 // output [0, 2, 2, 1] place 3 is filled, shift items left
이것은 코드 골프 도전입니다. 9 일이 지나면 가장 짧은 항목이 이깁니다.
[0, 2, 0, 2] placeAt 3
출력하는 것이 합법적 [2, 0, 2, 1]
입니까? 코드는 실제로라는 함수 여야 placeAt
합니까? 일부 언어에는 정확히 기능이 없습니다. "예외 발생"은 일부 언어에는 적용되지 않을 수도 있습니다. 오류를 나타내는 출력을 허용하는 것이 좋습니다.
[2, 0, 2, 1]
가능한 적은 수의 요소를 항상 이동해야하며 원하는대로 함수의 이름을 지정할 수 있으므로 올바른 출력이 아닙니다.
0
합니까?