시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB40151380112737.244%

문제

IPv6은 길이가 128비트인 차세대 인터넷 프로토콜이다.

IPv6의 주소는 32자리의 16진수를 4자리씩 끊어 나타낸다. 이때, 각 그룹은 콜론 (:)으로 구분해서 나타낸다.

예를 들면, 다음과 같다.

2001:0db8:85a3:0000:0000:8a2e:0370:7334

32자리의 16진수는 사람이 읽고 쓰기에 불편하고, 대부분의 자리가 0이기 때문에 아래와 같이 축약할 수 있다.

  1. 각 그룹의 앞자리의 0의 전체 또는 일부를 생략 할 수 있다. 위의 IPv6을 축약하면, 다음과 같다
2001:db8:85a3:0:00:8a2e:370:7334
  1. 만약 0으로만 이루어져 있는 그룹이 있을 경우 그 중 한 개 이상 연속된 그룹을 하나 골라 콜론 2개(::)로 바꿀 수 있다.
2001:db8:85a3::8a2e:370:7334

2번째 규칙은 모호함을 방지하기 위해서 오직 한 번만 사용할 수 있다.

올바른 축약형 IPv6주소가 주어졌을 때, 이를 원래 IPv6 (32자리의 16진수)로 복원하는 프로그램을 작성하시오.

입력

첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다.

출력

첫째 줄에, 입력으로 주어진 IPv6의 축약되지 않은 형태를 출력한다.

예제 입력 1

25:09:1985:aa:091:4846:374:bb

예제 출력 1

0025:0009:1985:00aa:0091:4846:0374:00bb

예제 입력 2

::1

예제 출력 2

0000:0000:0000:0000:0000:0000:0000:0001
W3sicHJvYmxlbV9pZCI6IjMxMDciLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJJUHY2IiwiZGVzY3JpcHRpb24iOiI8cD5JUHY2XHVjNzQwIFx1YWUzOFx1Yzc3NFx1YWMwMCAxMjhcdWJlNDRcdWQyYjhcdWM3NzggXHVjYzI4XHVjMTM4XHViMzAwIFx1Yzc3OFx1ZDEzMFx1YjEzNyBcdWQ1MDRcdWI4NWNcdWQxYTBcdWNmNWNcdWM3NzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPklQdjZcdWM3NTggXHVjOGZjXHVjMThjXHViMjk0IDMyXHVjNzkwXHViOWFjXHVjNzU4IDE2XHVjOWM0XHVjMjE4XHViOTdjIDRcdWM3OTBcdWI5YWNcdWM1MjkgXHViMDRhXHVjNWI0IFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC4gXHVjNzc0XHViNTRjLCBcdWFjMDEgXHVhZGY4XHViOGY5XHVjNzQwIFx1Y2Y1Y1x1Yjg2MCAoOilcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTc0XHVjMTFjIFx1YjA5OFx1ZDBjMFx1YjBiOFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjA4XHViOTdjIFx1YjRlNFx1YmE3NCwgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNC48XC9wPlxyXG5cclxuPHByZT5cclxuMjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0PFwvcHJlPlxyXG5cclxuPHA+MzJcdWM3OTBcdWI5YWNcdWM3NTggMTZcdWM5YzRcdWMyMThcdWIyOTQgXHVjMGFjXHViNzhjXHVjNzc0IFx1Yzc3ZFx1YWNlMCBcdWM0ZjBcdWFlMzBcdWM1ZDAgXHViZDg4XHVkM2I4XHVkNTU4XHVhY2UwLCBcdWIzMDBcdWJkODBcdWJkODRcdWM3NTggXHVjNzkwXHViOWFjXHVhYzAwIDBcdWM3NzRcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwIFx1YzU0NFx1Yjc5OFx1YzY0MCBcdWFjMTlcdWM3NzQgXHVjZDk1XHVjNTdkXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxvbD5cclxuXHQ8bGk+XHVhYzAxIFx1YWRmOFx1YjhmOVx1Yzc1OCBcdWM1NWVcdWM3OTBcdWI5YWNcdWM3NTggMFx1Yzc1OCBcdWM4MDRcdWNjYjQgXHViNjEwXHViMjk0IFx1Yzc3Y1x1YmQ4MFx1Yjk3YyBcdWMwZGRcdWI3YjUgXHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuIFx1YzcwNFx1Yzc1OCBJUHY2XHVjNzQ0IFx1Y2Q5NVx1YzU3ZFx1ZDU1OFx1YmE3NCwgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1YjJlNDxcL2xpPlxyXG48XC9vbD5cclxuXHJcbjxwcmU+XHJcbjIwMDE6ZGI4Ojg1YTM6MDowMDo4YTJlOjM3MDo3MzM0PFwvcHJlPlxyXG5cclxuPG9sIHN0YXJ0PVwiMlwiPlxyXG5cdDxsaT5cdWI5Y2NcdWM1N2QgMFx1YzczY1x1Yjg1Y1x1YjljYyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMjk0IFx1YWRmOFx1YjhmOVx1Yzc3NCBcdWM3ODhcdWM3NDQgXHVhY2JkXHVjNmIwIFx1YWRmOCBcdWM5MTEgXHVkNTVjIFx1YWMxYyBcdWM3NzRcdWMwYzEgXHVjNWYwXHVjMThkXHViNDFjIFx1YWRmOFx1YjhmOVx1Yzc0NCBcdWQ1NThcdWIwOTggXHVhY2U4XHViNzdjIFx1Y2Y1Y1x1Yjg2MCAyXHVhYzFjKDo6KVx1Yjg1YyBcdWJjMTRcdWFmYzAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9saT5cclxuPFwvb2w+XHJcblxyXG48cHJlPlxyXG4yMDAxOmRiODo4NWEzOjo4YTJlOjM3MDo3MzM0PFwvcHJlPlxyXG5cclxuPHA+Mlx1YmM4OFx1YzlmOCBcdWFkZGNcdWNlNTlcdWM3NDAgXHViYWE4XHVkNjM4XHVkNTY4XHVjNzQ0IFx1YmMyOVx1YzljMFx1ZDU1OFx1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVjNjI0XHVjOWMxIFx1ZDU1YyBcdWJjODhcdWI5Y2MgXHVjMGFjXHVjNmE5XHVkNTYwIFx1YzIxOCBcdWM3ODhcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YzYyY1x1YmMxNFx1Yjk3OCBcdWNkOTVcdWM1N2RcdWQ2MTUgSVB2Nlx1YzhmY1x1YzE4Y1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWM3NzRcdWI5N2MgXHVjNmQwXHViNzk4IElQdjYgKDMyXHVjNzkwXHViOWFjXHVjNzU4IDE2XHVjOWM0XHVjMjE4KVx1Yjg1YyBcdWJjZjVcdWM2ZDBcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjNjJjXHViYzE0XHViOTc4IElQdjYgXHVjOGZjXHVjMThjXHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVjNzc0IFx1YzhmY1x1YzE4Y1x1YjI5NCBcdWNkNWNcdWIzMDAgMzlcdWFlMDBcdWM3OTBcdWM3NzRcdWIyZTQuIFx1YjYxMFx1ZDU1YywgXHVjOGZjXHVjMThjXHViMjk0IFx1YzIyYlx1Yzc5MCAwLTksIFx1YzU0Y1x1ZDMwY1x1YmNiMyBcdWMxOGNcdWJiMzhcdWM3OTAgYS1mLCBcdWNmNWNcdWI4NjAgOlx1YzczY1x1Yjg1Y1x1YjljYyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAsIFx1Yzc4NVx1YjgyNVx1YzczY1x1Yjg1YyBcdWM4ZmNcdWM1YjRcdWM5YzQgSVB2Nlx1Yzc1OCBcdWNkOTVcdWM1N2RcdWI0MThcdWM5YzAgXHVjNTRhXHVjNzQwIFx1ZDYxNVx1ZDBkY1x1Yjk3YyBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMzEwNyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IklQdjYiLCJkZXNjcmlwdGlvbiI6IjxwPkluIElQdjYsIHRoZSBuZXh0IGdlbmVyYXRpb24gb2YgdGhlIEludGVybmV0IHByb3RvY29sLCBhbiBJUCBhZGRyZXNzIGlzIDEyOCBiaXRzIGxvbmcuIFRoZSBmdWxsIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYW4gSVB2NiBhZGRyZXNzIGNvbnNpc3RzIG9mIDggZ3JvdXBzIG9mIDQgaGV4YWRlY2ltYWwgZGlnaXRzIGVhY2gsIHdoZXJlIGdyb3VwcyBhcmUgc2VwYXJhdGVkIGJ5IGNvbG9uIGNoYXJhY3RlcnMgJiMzOTs6JiMzOTsuIEZvciBleGFtcGxlOiZuYnNwOzxcL3A+XHJcblxyXG48cHJlPjIwMDE6MGRiODo4NWEzOjAwMDA6MDAwMDo4YTJlOjAzNzA6NzMzNCZuYnNwOzxcL3ByZT5cclxuXHJcbjxwPlRvIGNvbXByZXNzIHRoaXMgdGV4dHVhbCByZXByZXNlbnRhdGlvbiwgd2UgYXJlIGFsbG93ZWQgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnM6Jm5ic3A7PFwvcD5cclxuXHJcbjxwPkFsbCBvciBzb21lIGxlYWRpbmcgemVyb2VzIGluIGEgZ3JvdXAgY2FuIGJlIHJlbW92ZWQuIEZvciBleGFtcGxlLCB0aGUgYWJvdmUgYWRkcmVzcyBjYW4gYmUgc2ltcGxpZmllZCBhczombmJzcDs8XC9wPlxyXG5cclxuPHByZT4yMDAxOmRiODo4NWEzOjA6MDA6OGEyZTozNzA6NzMzNCZuYnNwOzxcL3ByZT5cclxuXHJcbjxwPkFkZGl0aW9uYWxseSwgb25lIG9yIG1vcmUgY29uc2VjdXRpdmUgZ3JvdXBzIG9mIHplcm9lcyBjYW4gYmUgcmVwbGFjZWQgYnkgYSBkb3VibGUgY29sb24gJnF1b3Q7OjomcXVvdDsuIFRoZSBhYm92ZSBhZGRyZXNzIGJlY29tZXM6Jm5ic3A7PFwvcD5cclxuXHJcbjxwcmU+MjAwMTpkYjg6ODVhMzo6OGEyZTozNzA6NzMzNCZuYnNwOzxcL3ByZT5cclxuXHJcbjxwPlRoaXMgbGFzdCBzaW1wbGlmaWNhdGlvbiBjYW4gYmUgZG9uZSBvbmx5IG9uY2Ugc28gdGhhdCB0aGUgcmVzdWx0aW5nIHRleHQgcmVwcmVzZW50YXRpb24gaXMgbmV2ZXIgYW1iaWd1b3VzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdGhhdCB0YWtlcyBhIHZhbGlkIChwb3NzaWJseSBjb21wcmVzc2VkKSB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGFuIElQdjYgYWRkcmVzcyBhbmQgb3V0cHV0cyBpdHMgZnVsbCB0ZXh0IHJlcHJlc2VudGF0aW9uLiZuYnNwOzxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgY29udGFpbnMgYSBzdHJpbmcgb2YgYXQgbW9zdCAzOSBjaGFyYWN0ZXJzLCBhIHZhbGlkIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYW4gSVB2NiBhZGRyZXNzLiBUaGUgc3RyaW5nIGNvbnNpc3RzIG9mIGRpZ2l0cyAmIzM5OzAmIzM5Oy0mIzM5OzkmIzM5OywgbG93ZXJjYXNlIGxldHRlcnMgJiMzOTthJiMzOTstJiMzOTtmJiMzOTsgYW5kIGNvbG9uIGNoYXJhY3RlcnMgJiMzOTs6JiMzOTsuJm5ic3A7PFwvcD5cclxuIiwib3V0cHV0IjoiPHA+T3V0cHV0IHRoZSBmdWxsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBnaXZlbiBJUHY2IGFkZHJlc3MuJm5ic3A7PFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==

출처

Olympiad > Croatian Highschool Competitions in Informatics > 2009 > National Competition #1 - Juniors 1번