세계 IPv6 의 기념일을 기념하기 위해 인터넷 협회는 2014 년 6 월 6 일에 하루 동안 IPv4를 끄는 캠페인을 발표했습니다 .
IPv6 주소는 8 개의 콜론으로 구분 된 16 비트 16 진수 값으로 긴 형식으로 표시 될 수 있습니다. 주소에 따라 2.2 RFC 3513 주소 의 텍스트 표현 섹션의 항목 2에 설명 된대로 단축 될 수도 있습니다 .
0 비트를 포함하는 주소를보다 쉽게 작성하기 위해 0을 압축하는 특수 구문을 사용할 수 있습니다. "::"의 사용은 16 비트의 0으로 구성된 하나 이상의 그룹을 나타냅니다. "::"는 주소에 한 번만 나타날 수 있습니다. "::"을 사용하여 주소에서 선행 또는 후행 0을 압축 할 수도 있습니다.
이 문제에 대한 항목 중 하나 긴 또는 단축 형식으로 포맷 정확히 하나의 IPv6 주소를 받아 프로그램이 될 것이며, 동일한 주소가 표시됩니다 모두 순서대로, 길고 짧은 형식을.
입력은 명령 행 인수, STDIN 또는 선택한 언어에 적합한 기타 입력 소스에서 올 수 있습니다.
IPv6 주소를 구문 분석하기위한 라이브러리 또는 유틸리티는 금지되어 있습니다 (예 : inet_ {ntop, pton} () ).
입력 주소가 유효하지 않은 경우 출력이 비어 있습니다 (또는 주소가 유효하지 않음을 나타내는 적절한 오류 메시지 가 표시됨)
경우
::
단축이 발생, 하나의 단축는 지정된 주소를 발생할 수 있습니다. 주어진 주소에 대해 둘 이상의 잠재적 단축 작업이있는 경우 전체 가장 짧은 주소를 제공하는 작업을 사용해야합니다. 이와 관련하여 동점이 있으면 첫 번째 작업이 사용됩니다. 아래 예에 설명되어 있습니다.
예 :
Input Output
1080:0:0:0:8:800:200C:417A 1080:0:0:0:8:800:200C:417A
1080::8:800:200C:417A
FF01::101 FF01:0:0:0:0:0:0:101
FF01::101
0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:1
::1
:: 0:0:0:0:0:0:0:0
::
1:0:0:2:0:0:0:3 1:0:0:2:0:0:0:3
1:0:0:2::3
1:0:0:8:8:0:0:3 1:0:0:8:8:0:0:3
1::8:8:0:0:3
1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8
1:2:3:4:5:6:7:8
ABCD:1234 <Invalid address format - no output>
ABCDE::1234 <Invalid address format - no output>
1:2:3:4:5:6:7:8:9 <Invalid address format - no output>
:::1 <Invalid address format - no output>
codegolf puzzle <Invalid address format - no output>
이것은 codegolf 이므로 2014 년 6 월 6 일에 가장 짧은 바이트 단위의 답변이 승자로 승인됩니다.
1::2:0:0:0:3
가능한 입력은?
1:0:0:2:2::3
. 단축 된 출력이 그것과 같1::2:2:0:0:3
습니까? 최적화되지 않은 입력의 경우와 동일합니다.