문제 4134 · 바이트 II
방별 스마트 홈 청구서
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
스마트 홈 관리 서버는 여러 방에서 수집한 사용량 기록으로 한 달의 청구서를 만든다. 각 기록에는 방 번호와 사용량이 들어 있다. 같은 방의 기록은 여러 번 나타날 수 있으며, 기록이 들어온 순서는 실제 사용 순서와 관계없다. 서버는 모든 기록을 방 번호별로 합친 뒤 요금을 계산해야 한다. 각 방에는 월 사용량 10단위까지 무료 혜택이 적용된다. 어떤 방의 월 사용량 합계가 U라면 할인 전 요금은 max(0, U-10)에 3을 곱한 금액이다. 무료 혜택은 기록마다 적용하는 것이 아니라, 한 방의 월 사용량을 모두 합친 뒤 정확히 한 번 적용한다. 기록이 없는 방의 사용량은 0이다. 할인 전 요금이 1000 이상인 방에는 해당 방의 요금 전체에 10퍼센트 할인이 적용된다. 할인 후 요금은 할인 전 요금에 90을 곱하고 100으로 나눈 몫이다. 할인 전 요금이 1000 미만인 방은 할인 없이 그대로 청구한다. 할인 여부는 다른 방의 사용량이나 요금에 영향을 받지 않으며, 버려진 나머지를 다른 방으로 옮기지 않는다. 모든 방의 할인 후 요금을 더한 값을 공급가액이라고 한다. 세금은 공급가액을 10으로 나눈 몫이며, 최종 청구액은 공급가액과 세금의 합이다. 세금은 방마다 계산하지 않고 공급가액이 확정된 뒤 한 번만 계산한다. 모든 금액의 단위는 원이고 음수가 아닌 정수로 표시한다. 사용량이 모두 무료 범위에 들어가면 세 금액은 모두 0이다. 주어진 기록을 처리하여 공급가액, 세금, 최종 청구액을 순서대로 구하는 프로그램을 작성한다.
입력
첫째 줄에 방의 수 M과 기록 수 N이 공백으로 주어진다. M과 N은 정수이며 1≤M≤10000, 1≤N≤100000이다. 다음 N개 줄에는 방 번호 r과 사용량 u가 공백으로 주어진다. r과 u는 정수이며 1≤r≤M, 0≤u≤1000이다. 같은 방 번호가 여러 번 등장할 수 있다.
출력
공급가액, 세금, 최종 청구액을 공백으로 구분하여 한 줄에 정수로 출력한다.
예제 입력 1
3 4 1 8 2 400 1 7 3 10
예제 출력 1
1068 106 1174
예제 입력 2
2 3 1 4 1 6 2 0
예제 출력 2
0 0 0
예제 입력 3
2 2 1 343 2 344
예제 출력 3
1900 190 2090
힌트 펼치기
- 방별 사용량을 먼저 모두 합친다.
- 할인과 세금 계산에는 정수 나눗셈을 사용한다.
알고리즘 분류
구현누적 합정수 연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |