문제 3809 · 비트 III
스마트 홈 보관 요금
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 스마트 홈 서비스는 집 안의 센서가 만든 기록을 서버에 보관한다. 사용자는 매달 기록을 얼마나 보관했는지에 따라 요금을 낸다. 백엔드 담당자는 월말에 확정된 보관량을 받아 해당 월의 청구 금액을 계산해야 한다. 이번 문제에서는 한 가구의 한 달치 보관량만 다루며, 이전 달의 사용량이나 다음 달의 예약량은 고려하지 않는다. 서비스는 기록을 정해진 크기의 보관 단위로 묶어서 센다. 월말에 확정된 사용량 U는 이미 이 단위로 환산된 0 이상의 정수다. 따라서 프로그램이 기록의 크기를 다시 변환하거나 사용량을 올림할 필요는 없다. 같은 집에 여러 센서가 있더라도 입력의 U는 모든 센서의 보관량을 합친 값이며, 센서별 요금을 따로 계산하지 않는다. 사용량이 1단위 이상인 가구에는 기본요금 B원이 부과된다. 이 기본요금에는 사용량 L단위까지의 보관 비용이 포함되어 있다. U가 L 이하라면 추가 보관 요금은 없다. U가 L보다 크다면 L을 초과한 부분에 대해서만 1단위당 R원의 추가 요금을 낸다. 예를 들어 포함량이 4단위이고 사용량이 7단위라면 추가 요금을 내는 부분은 3단위다. 포함량을 모두 사용하지 않았더라도 기본요금의 일부를 돌려주지는 않는다. 사용량이 정확히 0단위인 달은 보관 서비스를 이용하지 않은 달로 처리한다. 이 경우에는 기본요금도 부과하지 않아 청구 금액이 0원이다. 포함량 L이 0일 수도 있으며, 이때 사용량이 양수라면 사용한 모든 단위에 추가 요금이 붙는다. 기본요금이나 단위당 추가 요금이 0원인 경우도 같은 규칙을 적용한다. 별도의 할인, 세금, 최소 청구 금액은 없다. 입력으로 주어진 네 정수만 사용하여 해당 가구의 최종 청구 금액을 정수 원 단위로 구한다.
입력
한 줄에 정수 U, L, B, R이 공백으로 구분되어 주어진다. 0 ≤ U, L ≤ 1,000이다. 0 ≤ B ≤ 100,000이다. 0 ≤ R ≤ 10,000이다.
출력
해당 월의 최종 청구 금액을 나타내는 정수 하나를 출력한다. 단위나 쉼표는 출력하지 않는다.
예제 입력 1
13 8 1200 70
예제 출력 1
1550
예제 입력 2
0 0 900 30
예제 출력 2
0
예제 입력 3
6 6 500 90
예제 출력 3
500
힌트 펼치기
- 사용량이 0인 경우를 먼저 처리한다.
- 추가 요금은 포함량을 초과한 사용량에만 붙는다.
알고리즘 분류
구현조건문풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |