반응형
s=input()
l=[]
ret=[]
start=0
for x in range(len(s)):
if s[x]==':':
l.append(s[start:x])
start=x+1
l.append(s[start:])
for x in l:
if len(x)==4:
ret.append(x)
elif len(x)==3:
ret.append('0'+x)
elif len(x)==2:
ret.append('00'+x)
elif len(x)==1:
ret.append('000'+x)
else:
ret.append('')
tmp=[]
for x in range(len(ret)-1):
if ret[x]=='':
t=9
if ret[x+1]=="":
t=10
for i in range(t-len(ret)):
tmp.append('0000')
break
if ret[x]=='':
if ret[x+1]=='':
ret=ret[:x]+tmp+ret[x+2:]
else:
ret=ret[:x]+tmp+ret[x+1:]
for x in range(len(ret)):
if x!=7:
print(ret[x],end=":")
else:
print(ret[x])
버스타고 다니면서 해서 상당히 주먹구구로 풀었던 문제
근데 이거 왜 실버 1이냐
우선 :를 기준으로 잘라준다.
자른 문자열들의 길이에 따라 앞에 0을 붙여서 ret에 append해준다.
그리고 아예 길이가 없는 경우, 즉 :: 이 오는경우에 0000을 붙여준다.
이때, 처음부터 ::인지, 아니면 앞에 문자가 하나 오고 ::이 오는지 확인하여, 그에따라 tmp에 0000을 넣어준다.
그리고 ret문자열을 적절하게 슬라이싱 하여 붙여서 리턴해준다.
반응형