n = int(input())
t = [[0] * 4 for _ in range(n)]
for i in range(n):
t[i] = list(map(int, input().split('.')))
b = [[] for _ in range(n)]
for i in range(n):
for j in range(3, -1, -1):
m = t[i][j]
cnt = 0
while cnt < 8:
if m % 2 == 0:
b[i].append(0)
else:
b[i].append(1)
m = int(m/2)
cnt += 1
out = False
m = -1
for i in range(len(b[0])-1, -1, -1):
tmp = 0
for j in range(n):
tmp += b[j][i]
if tmp != 0 and tmp != n:
m = i
out = True
if out == True:
break
tmp_ip = [0] * 32
tmp_mask = [0] * 32
for i in range(len(b[0])-1, m, -1):
tmp_ip[len(b[0]) - 1 - i] = b[0][i]
tmp_mask[len(b[0]) - 1 - i] = 1
ip = [0] * 4
mask = [0] * 4
k = 0
for i in range(0, 32, 8):
for j in range(0, 8):
ip[k] += (tmp_ip[i + j] * (2**(7-j)))
mask[k] += (tmp_mask[i + j] * (2**(7-j)))
k += 1
print(*ip, sep='.')
print(*mask, sep='.')
ip 주소 입력 받음 -> 2진법으로 바꿈 -> m 값 구함 -> 2진법으로 네트워크 주소와 네트워크 마스크 구함 -> 십진법으로 바꿈
처음에
out = False for i in range(len(b[0])-1, -1, -1): tmp = 0 for j in range(n): tmp += b[j][i] if tmp != 0 and tmp != n: m = i out = True if out == True: break
이런 식으로 m 초기값 지정하지 않아서 틀림
반례
2
255.255.255.255
255.255.255.255
이고 그래서 초기값을 -1로 지정해줌