๋ฌธ์
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
2. ๋ง์ฝ 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ ๊ทธ๋ฃน์ด ์์ ๊ฒฝ์ฐ ๊ทธ ์ค ํ ๊ฐ ์ด์ ์ฐ์๋ ๊ทธ๋ฃน์ ํ๋ ๊ณจ๋ผ ์ฝ๋ก 2๊ฐ(::)๋ก ๋ฐ๊ฟ ์ ์๋ค.
2001:db8:85a3::8a2e:370:7334
2๋ฒ์งธ ๊ท์น์ ๋ชจํธํจ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์ค์ง ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์๋ค.
์ฌ๋ฐ๋ฅธ ์ถ์ฝํ IPv6์ฃผ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์๋ IPv6 (32์๋ฆฌ์ 16์ง์)๋ก ๋ณต์ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฌ๋ฐ๋ฅธ IPv6 ์ฃผ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์ฃผ์๋ ์ต๋ 39๊ธ์์ด๋ค. ๋ํ, ์ฃผ์๋ ์ซ์ 0-9, ์ํ๋ฒณ ์๋ฌธ์ a-f, ์ฝ๋ก :์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง IPv6์ ์ถ์ฝ๋์ง ์์ ํํ๋ฅผ ์ถ๋ ฅํ๋ค.
https://www.acmicpc.net/problem/3107
๐ก ํ์ด ๋ฐ ์ฝ๋
ipv6 = input()
ipv6 = ipv6.split(':')
if ipv6[0] == '':
ipv6 = ipv6[1:]
if ipv6[-1] == '':
ipv6 = ipv6[:-1]
result = ''
for i in ipv6:
if i=='':
result += '0000:'*(8-len(ipv6)+1)
else:
result += i.zfill(4)+':'
print(result[:-1])
๋ฌธ์์ด์ ํ์ฉํ ๊ตฌํ ๋ฌธ์ ์ด๋ค. ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ค.
๋จผ์ ์ ๋ ฅ๋ฐ์ ๋ฌธ์์ด์ ':' ๋จ์๋ก splitํ๊ณ , '::'๋ก ์ธํด ๋ง๋ค์ด์ง ๋ฆฌ์คํธ์ ๋น ๋ฌธ์์ด์ด ๋ ๊ฐ ์ด์ ์ ์ฅ๋๋ ์์ธ๋ฅผ ๋ง๋ค์ง ์๊ธฐ ์ํด ๋ฆฌ์คํธ์ ๋งจ ์๊ณผ ๋งจ ๋ค์ ๋น ๋ฌธ์์ด์ด ์์ ๊ฒฝ์ฐ( ex. '::a' ) ํด๋น ๋น ๋ฌธ์์ด์ ๋ฌด์ํ๊ณ ์ ์ฅํ๋ค. ์ดํ ๋ฆฌ์คํธ ์์ ๋ฌธ์์ด์ด ๋น ๋ฌธ์์ด์ด๋ผ๋ฉด '0000'์ ๋ถ์กฑํ ์๋ฆฟ์ ๋งํผ ์ฑ์์ฃผ๊ณ , ๋น ๋ฌธ์์ด์ด ์๋๋ผ๋ฉด zfill ํจ์๋ฅผ ์ฌ์ฉํด 4์๋ฆฌ ์๋ฅผ ๋ง์ถ์ด 0์ ์ฑ์์ฃผ๋ฉด ๋๋ค.
'Algorithm > ๐ Baekjoon Judge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 16400๋ฒ ์์ ํํ - ํ์ด์ฌ(Python) (0) | 2021.12.31 |
---|---|
[BOJ] ๋ฐฑ์ค 2293๋ฒ ๋์ 1 - ํ์ด์ฌ(Python) (0) | 2021.12.31 |
[BOJ] ๋ฐฑ์ค 7562๋ฒ ๋์ดํธ์ ์ด๋ - ํ์ด์ฌ(Python) (0) | 2021.12.29 |
[BOJ] ๋ฐฑ์ค 9465๋ฒ ์คํฐ์ปค - ํ์ด์ฌ(Python) (0) | 2021.11.24 |
[BOJ] ๋ฐฑ์ค 1202๋ฒ ๋ณด์ ๋๋ - ํ์ด์ฌ(Python) (0) | 2021.11.23 |