이 도전에서 영감을 얻었습니다 .
골:
미리 구성된 배전반과 인덱스 목록이 제공되면 지정된 인덱스에서 스위치를 반전시킵니다.
배전반은 여러 개의 스위치 ( v
또는 ^
)로 싸여 있고 -
다양한 길이의 행으로 배열되어 있습니다. 배전반의 예는 다음과 같습니다.
-v-^-v-
-^-v-
-v-^-v-
스위치를 뒤집거나 뒤집는 것은 스위치를 v
에서 ^
에서 또는로 변경하는 것을 의미 ^
합니다 v
.
스위치는 왼쪽에서 오른쪽으로, 위에서 아래로 색인됩니다. 예를 들어, 위의 예 v
에서 첫 번째 행 의 마지막 은 위치 3 ^
에 있고 가운데 행은 4에 있습니다 (1 인덱싱 사용).
입력:
- 교환 대를 나타내는 문자열 (또는 문자열 목록). 정규식과 일치하는 것이 보장됩니다
((-[v^])+-)(\n(-[v^])+-)*
. - 인덱스를 나타내는 비어있는 숫자 목록은 0 또는 1 (또는 원하는 경우 임의의 숫자)이 될 수 있습니다. 이것들은 뒤집어 야 할 스위치입니다.
산출:
- 지정된 스위치가있는 입력과 같은 모양의 스위치 보드가 반전되었습니다. 지정되지 않은 스위치는 초기 상태를 유지해야합니다.
규칙 :
- 입력은 항상 올바른 형식이며 지정된 색인이 범위를 벗어납니다.
- 인덱스 목록이 정렬되어 중복 항목이 없습니다.
- 사용하는 색인을 0, 1 또는 임의의 색인으로 답하십시오.
- 출력이 입력처럼 보이는 한 후행 공백이 좋습니다.
- 이것은 코드 골프 이므로 가장 짧은 코드가 승리합니다.
예 :
#Using 1-indexing
input: #Empty Case
[],
-v-^-v-
output:
-v-^-v-
input: #Single switch
[1],
-v-
output:
-^-
input: #Skip a line
[3,5],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-v-
-v-^-
input: #Flip one in each line + number wrap
[3,4,6],
-^-v-v-
-v-
-^-^-
output:
-^-v-^-
-^-
-^-v-
input: #Flip 'em all
[1,2,3,4,5,6],
-^-v-v-
-v-
-^-^-
output:
-v-^-^-
-^-
-v-v-
>"-"
다음 인지 확인하는 요령 : 입력 문자열이로 시작되도록 보장하기 -
위해 대신 사용하는 매개 변수 / 인수 / 변수 이름을 확인할 수 있습니다.