IP 네트워크 주소

면접 대비

시간 제한2초메모리 제한128 MB

요약
주어진 IPv4 주소들을 모두 포함하는 가장 작은 네트워크의 네트워크 주소와 서브넷 마스크를 비트 연산으로 구하는 문제입니다.
난이도

쉬움10점 중 3점

유형
비트 연산, 구현
정답자
아직 제출이 없습니다

문제

IP 네트워크에 속한 컴퓨터들은 각각 하나의 IPv4 주소를 가진다. 하나의 IP 네트워크는 네트워크 주소와 네트워크 마스크로 표현한다.

IPv4 주소, 네트워크 주소, 네트워크 마스크는 모두 네 개의 바이트를 점으로 구분한 십진수 형식으로 쓴다. 각 바이트는 0 이상 255 이하이며, 앞에 불필요한 0을 붙이지 않는다.

각 바이트를 8비트 이진수로 바꾸어 이어 붙이면 주소 하나를 32비트 값처럼 볼 수 있다. 어떤 네트워크가 2m2^m개의 주소를 포함한다면, 그 네트워크 주소의 앞쪽 32−m32-m비트는 고정되어 있고 뒤쪽 mm비트는 모두 0이다. 네트워크 마스크는 앞쪽 32−m32-m비트가 모두 1이고 뒤쪽 mm비트가 모두 0이다. 이 네트워크에는 앞쪽 32−m32-m비트가 네트워크 주소와 같은 모든 IP 주소가 포함된다.

같은 네트워크에 속한 IP 주소들이 주어진다. 이 모든 주소를 포함하는 네트워크 주소와 네트워크 마스크를 구하라. 가능한 답이 여러 개라면 포함하는 주소 수가 가장 적은 네트워크를 출력한다.

입력

첫째 줄에 정수 nn (1≤n≤1,0001 \le n \le 1{,}000)이 주어진다. 다음 nn개의 줄에는 컴퓨터의 IPv4 주소가 하나씩 주어진다.

출력

첫째 줄에 네트워크 주소를, 둘째 줄에 네트워크 마스크를 출력한다.

예제1

  1. 예제 1

    입력
    3
    194.85.160.177
    194.85.160.183
    194.85.160.178
    
    예상 출력
    194.85.160.176
    255.255.255.248