๐น IPv6
1. ๋ฌธ์ ๋งํฌ
2. ์ฝ๋
Python3
31120KB
40ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
split_ip = input().split(':')
# ๊ท์น 1
for i in range(len(split_ip)):
# ::์ผ๋ก ์ถ์ฝ๋ ๊ฒฝ์ฐ๊ฐ ์๋๊ณ , ์ถ์ฝ๋์ด์๋ ๊ฒฝ์ฐ
if split_ip[i] != '' and len(split_ip[i]) != 4:
# 0์ ์ถ๊ฐํด ์์ํ๋ก ๋ณต๊ตฌ
split_ip[i] = '0' * (4 - len(split_ip[i])) + split_ip[i]
# ๊ท์น 2(ํด๋นํ๋ ๊ฒฝ์ฐ์๋ง)
# 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ํํ๊ฐ ::์ผ๋ก ์ถ์ฝ๋ ๊ฒฝ์ฐ ์๋์ง ํ์ธ
num = 0 # ์ถ์ฝ๋์ง ์์ ๋ถ๋ถ์ ๊ฐ์
if '' in split_ip:
for i in range(len(split_ip)):
if split_ip[i] != '':
num += 1
else:
idx = i # ๊ท์น2๊ฐ ์ฌ์ฉ๋ ์์น
split_ip[idx] = '0000' * (8 - num)
ip = ''.join(split_ip)
answer = ''
for i in range(0, len(ip), 4):
answer += ip[i:i+4]
# ๋ง์ง๋ง์๋ง : ์ ๋ถ์
if i != 28:
answer += ':'
print(answer)
3. ํด์ค
๊ท์น1์ ๋ชจ๋ ํด๋น๋๋ ๊ฒฝ์ฐ์ด๊ณ , ๊ท์น 2๋ 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ด 1๊ฐ์ด์ ์์ ๊ฒฝ์ฐ์ด๋ฏ๋ก ๊ท์น 1์ ๋ชจ๋์๊ฒ ์ ์ฉํด์ค ๋ค, ๊ท์น 2๋ ํด๋น๋๋ ๊ฒฝ์ฐ ๋ง์ง๋ง์ ์ฒ๋ฆฌํด์ค๋ค.
:
์ ๊ธฐ์ค์ผ๋ก ๋ฐฐ์ด์ ๋๋ ํ ๋น ์นธ์ด ์๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ๊ท์น 2์ ๊ฒฝ์ฐ์ด๋ค.
๋น์นธ์ด ์๋ ์นธ์ ๊ฐ์๋ฅผ ์ธ๊ณ 8์์ ๋นผ์ฃผ๋ฉด 0์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ๊ทธ๋ฃน์ ๊ฐ์๊ฐ ๋์ค๋ฏ๋ก ๋น ์นธ ์์น์ โ0000โ ๊ทธ๋ฃน์ ๋ฃ์ด์ค๋ค.
๋๋ ๋์ ๊ฐ์ ๋ชจ๋ ํฉ์ณ์ค ํ 4์นธ๋ง๋ค :
์ ๋ฃ์ด์ค๋ค. (์ด๋ ๋ง์ง๋ง์๋ ๋ฃ์ง ์๋๋ค.)
This post is licensed under CC BY 4.0 by the author.