문제 5290 · 킬로 II
호텔 숙박 요금 정산
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
호텔 예약 시스템의 요금 정산 모듈을 만든다. 호텔에는 M가지 객실 등급이 있고, 각 등급에는 평일 1박 기본 요금이 원 단위 정수로 정해져 있다. 예약은 등급, 숙박 일수 n, 첫날 밤의 요일 d로 이루어진다. 요일은 월요일이 0, 화요일이 1, …, 일요일이 6이다. 숙박의 k번째 밤(k는 0부터)의 요일은 (d+k) mod 7이다. 금요일 밤(4)과 토요일 밤(5)은 주말 요금을 적용하며, 주말 1박 요금은 floor(기본 요금 × 130 / 100)으로 소수점 이하를 버린다. 나머지 밤은 기본 요금 그대로이다. 모든 밤의 요금을 더한 값이 소계이다. 장기 숙박 할인은 n이 7 이상이면 소계의 10%, n이 3 이상 6 이하이면 5%, 그보다 짧으면 없으며 할인액은 floor(소계 × 비율 / 100)이다. 소계에서 할인액을 뺀 값을 A라 한다. 봉사료는 floor(A × 10 / 100)이고, 부가세는 (A + 봉사료)에 대해 floor((A + 봉사료) × 10 / 100)이다. 청구 총액은 A + 봉사료 + 부가세이다. 각 예약의 청구 총액을 입력 순서대로 구하시오.
입력
첫 줄에 등급 수 M과 예약 수 R이 주어진다. 이어 M개의 줄에 등급 이름과 기본 요금이 공백으로 구분되어 주어진다. 등급 이름은 영문 대소문자로만 이루어진 길이 1~10의 문자열이며 서로 다르다. 이어 R개의 줄에 예약의 등급 이름, n, d가 공백으로 구분되어 주어진다. 1 ≤ M ≤ 100, 1 ≤ R ≤ 200,000, 1 ≤ 기본 요금 ≤ 10^6, 1 ≤ n ≤ 365, 0 ≤ d ≤ 6. 예약의 등급 이름은 항상 주어진 등급 중 하나이다.
출력
R개의 줄에 i번째 예약의 청구 총액을 정수로 한 줄에 하나씩 출력한다.
예제 입력 1
2 3 STD 100000 DLX 250000 STD 2 4 DLX 3 0 STD 7 3
예제 출력 1
314600 862125 827640
예제 입력 2
1 2 A 999 A 1 6 A 4 5
예제 출력 2
1207 4937
힌트 펼치기
- 7일마다 요일이 한 바퀴 돌므로 주말 밤의 수는 n÷7 몫에 2를 곱하고 나머지 밤만 직접 세면 된다.
- 각 단계(주말 요금, 할인, 봉사료, 부가세)마다 내림을 따로 적용해야 한다.
알고리즘 분류
구현수학풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |