문제 3110 · 비트 III
이동 기록의 검증표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 서비스의 데이터 담당자는 이동 기록을 통계에 넣기 전에 숫자 두 개를 검사한다. 각 기록에는 이용 시간 T와 이동 거리 D가 저장되어 있다. 이용 시간의 단위는 분이고 이동 거리의 단위는 미터다. 두 값은 모두 정수로 전달되지만, 수집 장치에서 잘못된 값을 보낼 수 있으므로 전달받은 기록이 모두 정상이라고 가정할 수는 없다. 이번 통계에서는 이용 시간이 1분 이상 180분 이하이고, 이동 거리가 1미터 이상 3,000미터 이하인 기록만 유효한 기록으로 정한다. 두 조건을 모두 만족해야 하며, 어느 한 조건이라도 만족하지 않으면 제외한 기록으로 분류한다. 경계에 해당하는 1분, 180분, 1미터, 3,000미터는 각각 허용된다. 시간이 정상이어도 거리가 0이면 제외하며, 거리가 정상이어도 시간이 음수이면 제외한다. 담당자는 유효한 기록의 이동 거리만 더해 통계용 총 이동 거리를 만든다. 제외한 기록의 이동 거리는 양수이더라도 합계에 넣지 않는다. 잘못된 값을 경계값으로 바꾸거나 절댓값으로 고치는 작업도 하지 않는다. 또한 숫자 두 개가 완전히 같은 기록이 여러 번 등장할 수 있다. 이들은 각각 별도로 수집된 기록이므로 중복을 없애지 않고 각 기록을 한 번씩 검사한다. 입력에 주어진 순서대로 모든 기록을 검사한 뒤, 유효한 기록 수와 제외한 기록 수, 유효한 기록의 총 이동 거리를 구한다. 유효한 기록이 하나도 없다면 유효한 기록 수와 총 이동 거리는 모두 0이다. 이 세 값을 데이터 검증 결과로 출력하는 프로그램을 작성한다.
입력
첫째 줄에 기록 수를 나타내는 정수 N이 주어진다. 다음 N개 줄에 정수 T와 D가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 1,000, -10 ≤ T ≤ 300, -100 ≤ D ≤ 5,000이다.
출력
첫째 줄에 유효한 기록 수, 제외한 기록 수, 유효한 기록의 총 이동 거리를 순서대로 공백으로 구분하여 출력한다. 총 이동 거리의 단위는 미터이며, 세 값 모두 정수로 출력한다.
예제 입력 1
5 12 800 0 400 180 3000 181 50 30 0
예제 출력 1
2 3 3800
예제 입력 2
3 -1 100 20 -5 300 5000
예제 출력 2
0 3 0
예제 입력 3
3 1 1 1 1 180 3000
예제 출력 3
3 0 3002
힌트 펼치기
- 각 기록에서 시간 조건과 거리 조건을 동시에 확인한다.
- 유효한 기록을 만났을 때만 개수와 거리 합계를 증가시킨다.
알고리즘 분류
데이터 검증구현반복풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |