난해한 프로그래밍 언어 인 악 은 "위빙 (weaving)"이라고하는 바이트 값에 대한 흥미로운 연산을 가지고 있습니다. 그것은 본질적으로 바이트의 8 비트의 순열입니다 (패턴이 대칭이기 때문에 어떤 끝에서 계산을 시작하는지는 중요하지 않습니다).
- 비트 0이 비트 2로 이동
- 비트 1이 비트 0으로 이동
- 비트 2가 비트 4로 이동
- 비트 3이 비트 1로 이동
- 비트 4가 비트 6으로 이동
- 비트 5가 비트 3으로 이동
- 비트 6이 비트 7로 이동
- 비트 7이 비트 5로 이동
편의상 순열에 대한 두 가지 다른 표현이 있습니다. 사이클로서 :
(02467531)
그리고 매핑 쌍의 목록으로 :
[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]
당신의 작업은 상자 그리기 문자를 사용하여,이 순열을 시각화하는 것입니다 ─
, │
, ┌
, ┐
, └
, ┘
, ┼
(Unicode 코드 포인트 : U + 2500, U + 2502, U + 250C, U + 2510 + 2514 U, U + 2518, U를 + 253C). 이 시각화는 다음 제약 조건을 충족해야합니다.
첫 번째 줄과 마지막 줄은 정확히 다음과 같습니다.
0 1 2 3 4 5 6 7
그 사이에는 상자 그리기 문자에 맞게 최대 15 자까지 줄을 사용할 수 있습니다 (4 줄 이상 필요). 행은 첫 번째 행의 숫자 중 하나 아래에서 수직으로 시작하고 마지막 행의 해당 숫자 위의 수직으로 끝나야합니다. 8 개의 선은 반드시 연결되어 있어야하며 비아 만 통과 할 수 있습니다 ┼
(항상 2 개의 선이 닿지 않아야 함). 라인의 정확한 경로는 당신에게 달려 있습니다 (특히 골프 가능한 레이아웃을 찾는 것이이 도전의 핵심입니다). 유효한 출력은 다음과 같습니다.
0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││ │ │││
│ ┌─┼─┘│ │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7
그러나 올바른 숫자를 올바르게 연결하는 다른 레이아웃도 좋습니다. 답변에 선택한 결과를 보여주십시오.
프로그램이나 기능을 작성할 수 있으며 입력을받지 않습니다. 다이어그램을 STDOUT (또는 가장 가까운 대안)으로 출력하거나 문자열 또는 문자열 목록 (각각 한 줄을 나타내는) 형식의 함수 리턴 값으로 출력하십시오.
표준 코드 골프 규칙이 적용되므로 가장 짧은 코드 (바이트)가 이깁니다.
01234567
입력으로 다음 연결 이 로 01234567
? 링크를 직접 알아 내야합니까? 특히 골프의 경우 훨씬 더 어려운 과제입니다.