그의 xkcd 에서 Randall 은 ISO 8601 표준 날짜 형식 에 대해 다소 호기심이 많은 대안 표기법을 사용했습니다.
큰 숫자는 현재 날짜에 일반적인 순서대로 나타나는 모든 숫자이며, 작은 숫자는 해당 숫자의 발생을 나타내는 1부터 시작하는 인덱스입니다. 위의 예는를 나타냅니다 2013-02-27
.
그러한 날짜에 대한 ASCII 표현을 정의합시다. 첫 번째 줄에는 인덱스 1-4가 포함됩니다. 두 번째 줄에는 "큰"숫자가 포함됩니다. 세 번째 줄에는 5에서 8까지의 색인이 있습니다. 단일 슬롯에 여러 개의 색인이있는 경우 가장 작은 것에서 가장 큰 것까지 나란히 나열됩니다. m
단일 슬롯 (예 : 동일한 숫자 및 동일한 행) 에 최대 개수의 색인이있는 경우 각 열의 m+1
문자는 넓고 왼쪽으로 정렬되어야합니다.
2 3 1 4
0 1 2 3 7
5 67 8
반대 전환에 대해서는 동반자 문제 도 참조하십시오 .
도전
xkcd-notation의 날짜가 제공되면 해당 ISO 8601 날짜 ( YYYY-MM-DD
)를 출력하십시오 .
STDIN (또는 가장 가까운 대안), 명령 행 인수 또는 함수 인수를 통해 입력을 받고 STDOUT (또는 가장 가까운 대안), 함수 리턴 값 또는 함수 (out) 매개 변수를 통해 결과를 출력하는 프로그램 또는 함수를 작성할 수 있습니다.
입력 값이 년 0000
과 9999
를 포함 하여 유효한 날짜라고 가정 할 수 있습니다 .
입력에 선행 공백이 없지만 선에 공백으로 채워져 사각형에 공백이 있다고 가정 할 수 있습니다.이 공백에는 최대 하나의 공백이 있습니다.
표준 코드 골프 규칙이 적용됩니다.
테스트 사례
2 3 1 4
0 1 2 3 7
5 67 8
2013-02-27
2 3 1 4
0 1 2 4 5
5 67 8
2015-12-24
1234
1 2
5678
2222-11-11
1 3 24
0 1 2 7 8
57 6 8
1878-02-08
2 4 1 3
0 1 2 6
5 678
2061-02-22
1 4 2 3
0 1 2 3 4 5 6 8
6 5 7 8
3564-10-28
1234
1
5678
1111-11-11
1 2 3 4
0 1 2 3
8 5 6 7
0123-12-30
1
위의 2
숫자이므로 첫 번째 숫자는 2
입니다. 2
위 0
의 두 번째 숫자는 0
입니다. 3
위 1
, 4
위 3
, 그래서 우리 2013
는 처음 네 자리 숫자를 얻습니다 . 이제 5
아래 인 0
다섯 번째 디지트가되도록 0
, 6
그리고 7
둘 이하이다 2
, 그래서 그 자리의 양이다 2
. 그리고 마지막 8
은 아래 7
에 있으므로 마지막 숫자는 8
입니다 2013-02-27
. 하이픈은 xkcd 표기법에 내포되어 있으므로 어떤 위치에 표시되는지 알 수 있습니다.