소개:
원래는 내 머리 속에 네덜란드 노래가 있었지만 가사는 다음과 같습니다. " Doe 'n stapje naar voren, en'n stapje terug "( " 조금 전진하고 조금 뒤로 물러서서 " 나는 완전한 가사를 찾았다.
대신, 저는 이제이 도전을 위해 Mr C The Slide Man aka DJ Casper-Cha-Cha Slide 의 가사를 사용합니다 .
우리가 다른 모든 것을 무시하고 언급 된 양을 포함하여 "왼쪽", "오른쪽", "뒤로"및 "홉"(앞으로 "홉"으로 간주)이라는 단어 만 보면 전체 노래의 목록은 다음과 같습니다 ( 약어 LRBH를 사용하고 있습니다.)
LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH
숨길 수있는 JavaScript 코드 스 니펫 (공간을 절약하기위한)의 전체 노래 가사는 이동과 양이 괄호로 묶여 있습니다.
도전:
이제 도전 자체에. 하나, 둘 또는 세 개의 입력 †을 취 합니다. 그중 하나는 인덱스-정수 목록입니다 (따라서 0- 인덱스에서는 음수가 아니거나 1- 인덱싱에서는 양수가 아닙니다). (다른 입력은 선택 사항이며 챌린지 규칙에 설명되어 있습니다.)
모든 테스트 케이스는 위치에서 시작됩니다 {x=0, y=0}
.
이제 가사 목록을 사용하고 입력 목록의 주어진 색인에서 모든 움직임을 제거 하십시오. 그런 다음 이동을 통해 '걸어서'(입력 배열의 최대 색인까지) 최종 위치를 출력합니다.
동작은 다음과 같이 좌표를 변경합니다
.- R
: x+1
- L
: x-1
- H
: y+1
- B
:y-1
도전 규칙 :
- 이동 목록은 원하는 방식으로 액세스 할 수 있습니다. † : 추가 입력이 가능합니다. 읽을 디스크의 별도 파일에있을 수 있습니다. 액세스하는 클래스 수준 변수에있을 수 있습니다. 그것은의 형태로해야 할 것이다
L
,R
,B
그리고H
하지만 (문자열이나 문자 목록 / 배열 할 수있다)를 그래서 당신 할 수 없습니다로 이동-리스트에 저장1
s와-1
s 또는 정수. - 위에 제공된 이동 목록은 하드 코딩되어 있으며 항상 동일합니다. (왜냐하면 이것이 답변의 바이트 수에 도움이된다면 입력으로 사용하는 대신 클래스 수준 필드로 입력하는 것이 좋습니다.)
- 입력 목록은 0 색인 또는 1 색인 (최대 사용자)
- 우리는 목록의 가장 큰 색인을 제외하고 이동을 '보행'합니다.
- † : 이 마지막 항목을 입력 배열의 마지막 항목 대신 분리 된 정수 입력으로 사용할 수도 있습니다.
- 우리가 끝내는 x 및 y 좌표의 출력은 합리적인 형식 (두 개의 항목을 포함하는 정수 배열, 구분 된 문자열, 두 개의 분리 된 줄에 STDOUT로 인쇄 등)이 될 수 있습니다
- 입력 목록이 가장 낮은 것에서 가장 높은 것 (또는 선호하는 경우 가장 높은 것에서 가장 낮은 것까지 정렬 된 것으로 가정 할 수 있습니다.이 경우 첫 번째 항목은 이동 목록의 초기 크기입니다 (분리 된 입력으로 간주되지 않는 경우)). 또한 중복 인덱스도 포함하지 않습니다.
- 입력 목록의 가장 큰 색인이 위의 이동 목록보다 큰 경우 (55 개의 이동이 위의 이동 목록에 있음) 목록의 처음으로 다시 감습니다 (최대 색인에 따라 필요한만큼 여러 번) 입력).
y,x
대신에 출력 할 수 있지만 가능하면x,y
답변에 지정하십시오.
예:
입력: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]
여기에서 서로의 움직임과 (0 인덱스) 지수 :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
L, B, H, R, L, L, B, H, R, L, B, H, H, R, R, L, L, L, R, L, B, H, H, H, H, R, R, L, L, L, B, H, H, H, H, H, R, L, R, L, R, L, H, R, L, L, B, H, H, L, R, L, B, H, H, L, B, H, R, L, L, B, H, R, L
입력 목록의 색인을 제거하면 다음과 같은 이동 목록이 남습니다.
1, 2, 3, 5, 6, 7, 9,11,12,15,16,17,18,19,20,21,22,23,24,25,26,28,29,30,31,32,33,35,36,37,38,39,40,41,45,46,47,48,49,51,52,54,55,57,58,61,62,63
B, H, R, L, B, H, L, H, H, L, L, L, R, L, B, H, H, H, H, R, R, L, L, B, H, H, H, H, R, L, R, L, R, L, L, B, H, H, L, L, B, H, L, H, R, B, H, R
이제 {0, 0}
남은 동작 위의 위치에서 걷게되면 매 움직임마다 다음과 같은 새로운 좌표가 생깁니다.
{0,0};B,{0,-1};H,{0,0};R,{1,0};L,{0,0};B,{0,-1};H,{0,0};L,{-1,0};H,{-1,1};H,{-1,2};L,{-2,2};L,{-3,2};L,{-4,2};R,{-3,2};L,{-4,2};B,{-4,1};H,{-4,2};H,{-4,3};H,{-4,3};H,{-4,5};R,{-3,5};R,{-2,5};L,{-3,5};L,{-4,5};B,{-4,4};H,{-4,5};H,{-4,6};H,{-4,7};H,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};R,{-3,8};L,{-4,8};L,{-5,8};B,{-5,7};H,{-5,8};H,{-5,9};L,{-6,9};L,{-7,9};B,{-7,8};H,{-7,9};L,{-8,9};H,{-8,10};R,{-7,10};B,{-7,9};H,{-7,10};R,{-6,10}
따라서 최종 출력은 다음과 같습니다. {-6, 10}
일반 규칙:
- 이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
코드 골프 언어가 코드 골프 언어 이외의 언어로 답변을 게시하지 못하게하십시오. '모든'프로그래밍 언어에 대한 가능한 한 짧은 대답을 생각해보십시오. - 표준 규칙이 답변에 적용 되므로 STDIN / STDOUT, 적절한 매개 변수 및 반환 유형의 전체 프로그램과 함께 함수 / 방법을 사용할 수 있습니다. 당신의 전화.
- 기본 허점 은 금지되어 있습니다.
- 가능하면 코드 테스트 링크를 추가하십시오.
- 또한 답변에 대한 설명을 추가하는 것이 좋습니다.
테스트 사례 :
0-indexed input: [0,4,8,10,13,14,27,34,42,43,44,50,53,56,59,60,64]
1-indexed input: [1,5,9,11,14,15,28,35,43,44,45,51,54,57,60,61,65]
Output: {-6, 10}
0-indexed input: [55] (Note: There are 55 moves in the unmodified list)
1-indexed input: [56] (Note: There are 55 moves in the unmodified list)
Output: {-6, 11}
0-indexed input: [0,1,4,5,6,9,10,15,16,17,19,20,27,29,30,37,38,39,41,44,45,46,49,51,52]
1-indexed input: [1,2,5,6,7,10,11,16,17,18,20,21,28,30,31,38,39,40,42,45,46,47,50,52,53]
Output: {10, 16}
0-indexed input: [2,3,7,8,11,12,13,14,18,21,22,23,24,25,26,31,32,33,34,35,36,38,40,42,43,47,48,50,53]
1-indexed input: [3,4,8,9,12,13,14,15,19,22,23,24,25,26,27,32,33,34,35,36,37,39,41,43,44,48,49,51,54]
Output: {-18, -7}
0-indexed input: [0]
1-indexed input: [1]
Output: {0, 0}
0-indexed input: [4,6,7,11,12,13,15,17,20,28,31,36,40,51,59,66,73,74,80,89,92,112,113,114,116,120,122,125,129,134,136,140,145,156,161,162,165,169,171,175,176,178,187,191,200]
1-indexed input: [5,7,8,12,13,14,16,18,21,29,32,37,41,52,60,67,74,75,81,90,93,113,114,115,117,121,123,126,130,135,137,141,146,157,162,163,166,170,172,176,177,179,188,192,201]
Output: {-17, 37}
0-indexed input: [25,50,75,100,125,150,175,200,225,250]
1-indexed input: [26,51,76,101,126,151,176,201,226,251]
Output: {-28, 49}