본문으로 이동
코드패스 by Devin.KR

문제 4909 · 킬로 IV

변하지 않은 센서

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

한 날씨 관측소는 여러 센서가 보내는 상태값을 하나의 수신 장치에 모은다. 센서에는 양의 정수 식별 번호가 붙어 있다. 번호는 연속해서 배정되지 않으며, 번호가 크다고 해서 더 늦게 설치된 센서라는 뜻도 아니다. 수신 장치는 메시지를 받을 때마다 센서 번호와 정수 상태값을 한 줄의 기록으로 남긴다. 이번 점검에서는 기록이 남아 있는 센서 중 상태값이 한 번도 바뀌지 않은 센서를 찾으려고 한다. 어떤 센서가 보낸 모든 기록의 상태값이 서로 같으면 그 센서를 고정 센서라고 부른다. 그 센서가 기록에 한 번만 등장했다면 비교할 다른 값이 없으므로 고정 센서에 포함한다. 기록에 전혀 등장하지 않은 번호는 점검 대상에 포함하지 않는다. 수신 환경에 따라 같은 메시지가 여러 번 도착할 수 있다. 따라서 같은 센서 번호와 같은 상태값을 가진 줄이 반복되어도 각 줄은 올바른 입력이다. 같은 상태값을 여러 번 보냈다는 사실만으로 고정 센서에서 제외하지 않는다. 반대로 한 센서에서 서로 다른 상태값이 단 한 번이라도 발견되면 그 센서는 고정 센서가 아니다. 이후에 처음 상태값으로 돌아오더라도 이미 발견한 변화가 사라지지는 않는다. 서로 다른 센서는 같은 상태값을 보낼 수 있으며, 이 경우에는 각 센서를 따로 판단한다. 기록은 수신된 순서대로 주어지지만 같은 센서의 기록이 연속해서 나타난다는 보장은 없다. 두 기록 사이에 다른 센서의 메시지가 아무리 많이 들어 있어도 센서 번호가 같으면 함께 비교해야 한다. 전체 기록을 확인하여 고정 센서의 개수를 구한다. 또한 점검 담당자가 가장 먼저 확인할 수 있도록, 고정 센서 중 식별 번호가 가장 작은 센서의 번호도 구한다. 고정 센서가 하나도 없다면 개수는 0이고, 선택할 센서 번호 대신 -1을 사용한다. 상태값의 크기나 기록의 등장 순서는 센서를 선택하는 우선순위에 영향을 주지 않는다.

입력

첫째 줄에 기록의 개수 N이 주어진다. N은 1 이상 20,000 이하의 정수다.
다음 N개의 줄에 센서 번호 S_i와 상태값 V_i가 공백으로 구분되어 주어진다. S_i는 1 이상 1,000,000,000 이하의 정수이고, V_i는 -99 이상 99 이하의 정수다. 같은 번호 또는 같은 기록이 여러 번 주어질 수 있다.

출력

고정 센서의 개수와 고정 센서 중 가장 작은 센서 번호를 공백으로 구분하여 한 줄에 출력한다. 고정 센서가 없으면 0 -1을 출력한다.

예제 입력 1

8
42 3
7 -1
42 3
9 0
7 2
100 5
9 0
100 5

예제 출력 1

3 9

예제 입력 2

4
5 1
8 4
5 2
8 3

예제 출력 2

0 -1

예제 입력 3

3
900 0
900 0
900 0

예제 출력 3

1 900
힌트 펼치기
  • 센서마다 처음 받은 상태값을 저장하고, 다른 값이 발견된 센서를 별도로 표시한다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류해시집합

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)