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

문제 4336 · 바이트 IV

택배 목록 복원

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

문제

택배 분류장에서 전송한 작업 기록에 잘못된 값이 섞였다. 데이터 담당자는 기록을 검증한 뒤 현재 접수된 택배 목록을 복원하려 한다. 처음에는 접수된 택배가 하나도 없다. 각 기록에는 택배 코드, 작업 문자, 무게가 있으며, 입력된 순서대로 처리한다. 택배 코드는 길이가 정확히 4인 문자열이다. 올바른 코드는 네 글자가 모두 숫자이고 첫 글자가 0이 아닌 코드다. 코드에 영문 대문자가 하나라도 있거나 첫 글자가 0이면 그 기록 전체를 무시한다. 무시한 기록은 앞에서 처리한 결과에 아무 영향도 주지 않는다. 작업 문자가 S이면 접수 또는 수정 기록이다. 이때 무게가 1 이상 50 이하일 때만 올바른 기록으로 인정한다. 올바른 S 기록을 만나면 해당 코드의 택배를 목록에 넣고 무게를 기록한다. 이미 목록에 있는 코드라면 기존 무게를 새 무게로 바꾼다. 따라서 같은 코드의 올바른 접수 기록이 여러 번 나타날 수 있다. 작업 문자가 D이면 접수 취소 기록이다. 이때 무게가 정확히 0일 때만 올바른 기록으로 인정한다. 올바른 D 기록을 만나면 해당 코드를 목록에서 지운다. 목록에 없는 코드의 취소 기록은 목록을 바꾸지 않는다. 코드가 올바르더라도 작업에 맞지 않는 무게가 적혀 있으면 기록 전체를 무시한다. 모든 기록을 처리한 뒤 남은 택배의 코드와 무게를 출력해야 한다. 코드는 숫자로 보았을 때 작은 순서로 나열한다. 올바른 코드는 모두 같은 길이이고 첫 글자가 0이 아니므로 문자열의 사전순으로 정렬해도 같은 순서가 된다. 목록이 비어 있으면 택배 수를 나타내는 0만 출력한다.

입력

첫째 줄에 기록 수 N이 주어진다. N은 1 이상 20,000 이하의 정수다.
다음 N개 줄에 코드 C, 작업 문자 O, 무게 W가 공백으로 구분되어 주어진다. C는 숫자 0~9와 영문 대문자 A~Z로 이루어진 길이 4의 문자열이다. O는 S 또는 D다. W는 0 이상 99 이하의 정수다.

출력

첫째 줄에 최종 목록에 남은 택배 수 K를 출력한다. 다음 K개 줄에 코드와 무게를 공백으로 구분하여 코드의 오름차순으로 출력한다. K가 0이면 추가 줄을 출력하지 않는다.

예제 입력 1

8
1204 S 12
0204 S 5
7310 S 30
1204 S 18
7310 D 2
AB12 S 7
7310 D 0
2400 S 51

예제 출력 1

1
1204 18

예제 입력 2

5
1000 D 0
2000 S 50
2000 D 0
3000 S 0
0000 S 10

예제 출력 2

0

예제 입력 3

4
9000 S 3
1001 S 8
9000 S 99
1001 D 4

예제 출력 3

2
1001 8
9000 3
힌트 펼치기
  • 검증을 통과한 기록만 코드별 현재 상태에 반영한다.

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