본문 바로가기

CodingTest/Baekjun Online Judge

[ 백준 / BOJ ] 2064 IP주소 * 다시 풀기 *

아 .. 얼마 전에 파이썬으로 비트연산하는 거 봐서 가뿐하게 할 수 있을 줄 알았는데..

IP주소 개념 학습이 안되어서 못 푸는 건가.. 하..

 

/  제출 1  /

n = int(input())
ip = []
for i in range(n):
  ip.append(list(map(int, input().split('.'))))

ipCopy = ip.copy()
ipAnd = [ipCopy.pop()]
while ipCopy:
  x = ipAnd.pop()
  y = ipCopy.pop()
  z = []
  for i in range(len(x)):
    z.append(x[i] & y[i])
  ipAnd.append(z) 

# ipAnd : 주소
address = ipAnd[0] 
print(*map(str,address), sep=".")

max = [0,0,0,0]
for i in range(len(ip)):
  new = []
  for j in range(len(address)):
    new.append(address[j] ^ ip[i][j])
  if new > max:
    max = new
mask = [255,255,255,255]
for i in range(len(max)):
  mask[i] = max[i]^mask[i]
print(*map(str,mask), sep=".")

장렬하게 틀렸습니다.

 

예제까지는 답이 맞았는데, 확신 없이 제출했더니 바로 오답 처리 받네요.

 

해당 문제는 많이들 안 푸시고 특히 파이썬 풀이는 더 없어서 보고 학습도 안 될 것 같고, 다음에 시간 있을 때 여유 두고 봐야겠습니다.

'CodingTest > Baekjun Online Judge' 카테고리의 다른 글

[ BOJ ] 스타트와 링크  (0) 2022.07.19
[ BOJ ] 구슬 탈출 2  (0) 2022.07.19
[ 백준 / BOJ ] 나3곱2  (0) 2022.07.01
[ 백준 / BOJ ] 2504 괄호의 값  (0) 2022.07.01
[ 백준 / BOJ ] 1966 프린터 큐  (0) 2022.07.01