문제 3619 · 비트 III
입고표의 부족 수량
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
물류 창고의 데이터 담당자는 입고 작업이 끝날 때마다 예정 수량과 실제 수량을 비교한다. 오늘 확인할 자료는 품목별 입고 내역을 담은 CSV 표다. 표의 첫 행에는 열 이름이 있고, 이후 각 행에는 품목 코드, 예정 수량, 실제 수량이 쉼표로 구분되어 기록되어 있다. 한 품목은 정확히 한 행에만 나타난다. 예정 수량은 해당 품목이 오늘 들어오기로 한 개수이고, 실제 수량은 검수를 마친 개수다. 실제 수량이 예정 수량보다 작으면 그 차이를 해당 품목의 부족 수량으로 정한다. 실제 수량이 예정 수량과 같거나 더 크면 부족 수량은 0이다. 예정 수량과 실제 수량은 모두 0일 수 있으며, 실제 수량이 예정 수량보다 큰 행도 올바른 자료다. 창고에서는 품목마다 별도로 입고 상태를 관리한다. 따라서 어떤 품목이 예정 수량보다 많이 들어왔더라도, 그 초과분으로 다른 품목의 부족분을 채운 것으로 처리하지 않는다. 예를 들어 한 행에서 부족 수량을 계산했다면 다른 행의 값과 상계하지 않고 그대로 합계에 더한다. 품목 코드는 행을 구별하기 위한 값이며, 코드의 크기나 입력된 순서는 계산에 영향을 주지 않는다. 담당자는 전체 자료를 읽고 부족 수량이 양수인 품목이 몇 개인지, 그리고 모든 품목의 부족 수량을 합하면 몇 개인지 보고해야 한다. 별도의 목록이나 품목별 결과는 필요하지 않다. 주어진 CSV 표를 집계하여 이 두 정수를 순서대로 출력하는 프로그램을 작성한다. 부족한 품목이 하나도 없다면 두 값은 모두 0이다.
입력
첫째 줄에 자료 행의 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 둘째 줄에는 정확히 code,expected,actual이 주어진다. 다음 N개 줄에는 품목 코드, 예정 수량, 실제 수량이 이 순서로 쉼표 하나씩으로 구분되어 주어진다. 각 줄에는 공백이나 따옴표가 없다. 품목 코드는 1 이상 1,000,000 이하의 정수이며 서로 다르다. 예정 수량과 실제 수량은 각각 0 이상 10,000 이하의 정수다. 모든 정수는 불필요한 앞자리 0 없이 표기된다.
출력
부족 수량이 양수인 품목의 수와 모든 품목의 부족 수량 합계를 공백 하나로 구분하여 한 줄에 출력한다. 부족한 품목이 없으면 0 0을 출력한다.
예제 입력 1
4 code,expected,actual 31,12,8 72,5,9 18,7,7 90,10,3
예제 출력 1
2 11
예제 입력 2
3 code,expected,actual 6,0,0 22,4,8 105,9,9
예제 출력 2
0 0
예제 입력 3
1 code,expected,actual 44,6,0
예제 출력 3
1 6
힌트 펼치기
- 각 행에서 max(예정 수량 - 실제 수량, 0)을 계산한다.
알고리즘 분류
구현집계풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |