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

문제 3112 · 비트 III

역별 출입 로그 요약

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

문제

지하철 운영 시스템의 백엔드 담당자는 여러 역에서 전송한 로그를 받아 특정 역의 출입 기록을 요약한다. 이번에 전달받은 로그는 모두 같은 수집 구간에 속하며, 한 줄에 하나의 기록이 들어 있다. 각 기록은 역 번호와 사건 이름을 세로줄 문자 하나로 연결한 형태다. 예를 들어 7|IN은 역 번호가 7이고 사건 이름이 IN인 기록을 뜻한다. 세로줄 앞뒤에는 공백이 없다. 사건 이름은 IN, OUT, PING 중 하나다. IN은 입장 기록 한 건이고 OUT은 퇴장 기록 한 건이다. PING은 장치가 동작 중임을 알리는 상태 확인 기록이며, 사람의 입장이나 퇴장을 의미하지 않는다. 담당자는 집계 대상 역의 IN 기록 수와 OUT 기록 수를 각각 구해야 한다. 다른 역의 기록과 모든 PING 기록은 두 개수에 영향을 주지 않는다. 역 번호는 정수 값으로 비교한다. 집계 대상 역 번호가 7일 때 역 번호가 17인 기록은 대상에 포함하지 않는다. 사건 이름도 정확히 일치하는 것으로 구분하며, 입력에는 정해진 세 이름 이외의 문자열이 등장하지 않는다. 로그 형식 자체는 항상 올바르므로 잘못된 줄을 복구하는 작업은 필요하지 않다. 같은 문자열의 로그가 여러 줄 등장하더라도 각 줄은 별개의 기록이다. 따라서 같은 입장 기록이 세 줄 있으면 입장 기록 수에 3을 더한다. 기록의 순서로 입장과 퇴장을 짝짓거나 현재 역 안에 있는 사람 수를 추정하지 않는다. 특정 종류의 기록이 하나도 없다면 그 종류의 개수는 0이다. 대상 역의 기록이 전혀 없는 경우에도 결과를 출력해야 한다. 주어진 로그를 구분자로 나누어 읽고, 대상 역의 입장 기록 수와 퇴장 기록 수를 출력하는 프로그램을 작성한다.

입력

첫째 줄에 로그 수 N과 집계 대상 역 번호 S가 공백으로 구분되어 주어진다.
다음 N개 줄에 역번호|사건이름 형식의 로그가 하나씩 주어진다.
1 ≤ N ≤ 1,000, 1 ≤ S ≤ 100이다. 각 로그의 역 번호는 1 이상 100 이하의 정수이며, 앞에 불필요한 0이 붙지 않는다. 사건 이름은 IN, OUT, PING 중 하나다.

출력

첫째 줄에 대상 역의 IN 기록 수와 OUT 기록 수를 순서대로 공백으로 구분하여 출력한다. 두 값은 모두 0 이상의 정수로 출력한다.

예제 입력 1

6 7
7|IN
17|IN
7|PING
7|OUT
7|IN
3|OUT

예제 출력 1

2 1

예제 입력 2

3 4
4|PING
8|IN
8|OUT

예제 출력 2

0 0

예제 입력 3

4 100
100|OUT
100|OUT
100|OUT
100|IN

예제 출력 3

1 3
힌트 펼치기
  • 각 로그를 세로줄 문자로 나누면 역 번호와 사건 이름을 얻는다.
  • 대상 역의 기록에서 IN과 OUT의 개수를 각각 센다.

출처: 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 / 테스트측정하지 않음(브라우저 채점)