문제 4321 · 바이트 IV
공유 자전거 월말 청구서
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 서비스의 백엔드 담당자는 한 이용자의 월말 청구서를 만드는 기능을 구현하고 있다. 이번 청구서에는 아직 결제하지 않은 이용 기록만 들어 있으며, 각 기록에는 자전거를 이용한 시간과 그 이용에 적용할 할인율이 저장되어 있다. 모든 금액은 원 단위의 정수로 계산한다. 한 번의 이용에 대한 기본요금은 1,000원이며 처음 10분까지를 포함한다. 이용 시간이 10분을 넘으면 초과한 시간을 5분 단위로 올림하여 단위마다 300원을 추가한다. 예를 들어 11분과 15분을 이용한 경우에는 모두 추가요금이 300원이고, 16분을 이용한 경우에는 추가요금이 600원이다. 서비스에는 한 번의 이용에 대한 요금 상한이 있다. 기본요금과 추가요금을 합한 금액이 5,000원을 넘으면 그 금액을 5,000원으로 바꾼다. 이 상한은 이용 기록마다 따로 적용하며, 여러 이용의 시간을 합치거나 여러 이용의 요금을 합친 뒤 적용하지 않는다. 다음으로 각 이용 기록에 저장된 할인율을 적용한다. 상한을 적용한 요금에 할인율을 곱하고 100으로 나눈 값에서 소수점 이하를 버린 금액이 할인액이다. 해당 이용의 결제 대상 금액은 상한을 적용한 요금에서 할인액을 뺀 값이다. 할인은 추가요금만이 아니라 기본요금을 포함한 요금 전체에 적용한다. 모든 이용의 결제 대상 금액을 더한 값을 공급가액 S라고 한다. 세금은 공급가액의 10퍼센트에서 소수점 이하를 버린 금액 T다. 세금은 이용마다 계산하지 않고 공급가액을 모두 합친 뒤 정확히 한 번 계산한다. 최종 청구액은 S와 T의 합이다. 이용 시간은 이미 분 단위의 양의 정수로 정리되어 있으므로 시간 자체를 반올림할 필요는 없다. 입력된 기록은 모두 유효하고 취소나 중복 결제는 없다. 정해진 순서대로 상한, 할인, 합산, 세금을 적용하여 공급가액과 세금 및 최종 청구액을 구한다.
입력
첫째 줄에 이용 기록의 수 N이 주어진다. N은 1 이상 30,000 이하의 정수다. 다음 N개 줄에 각 이용 기록의 이용 시간 t와 할인율 c가 공백으로 주어진다. t는 1 이상 100,000 이하의 정수이며 단위는 분이다. c는 0 이상 50 이하의 정수이며 단위는 퍼센트다.
출력
공급가액 S, 세금 T, 최종 청구액 S+T를 이 순서대로 한 줄에 공백으로 구분하여 출력한다. 모든 값은 원 단위의 정수로 출력한다.
예제 입력 1
3 10 0 11 10 100 30
예제 출력 1
5670 567 6237
예제 입력 2
2 1 33 11 17
예제 출력 2
1749 174 1923
힌트 펼치기
- 양의 정수 x를 5로 나눈 결과를 올림한 값은 (x+4)를 5로 나눈 몫이다.
- 이용별 요금 계산과 청구서 전체의 세금 계산을 구분한다.
알고리즘 분류
구현정수 연산풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |