-
1284. 수도 요금 경쟁코딩 테스트/SW Expert Academy 2021. 6. 21. 23:37
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 이해
-> 두 수도회사 중 요금이 보다 저렴한 회사를 선택하는 프로그램
-> A사는 1리터당 P원의 요금 책정
-> B사는 기본 요금이 Q원이고, 월간 사용량 R리터 이하로 사용할 경우 기본 요금으로 책정
-> 만약, 월간 사용량 R보다 초과 사용할 경우 초과 사용량에 대해 1리터당 S원의 요금 추가 책정
-> 한 달간의 사용량이 W일 때, 더 저렴한 회사를 출력
문제 주의
-> 각 첫 줄에는 테스트 케이스가 주어지고 그 아래로 각 테스트 케이스가 주어짐
-> 테스트 케이스의 첫 번째 줄에는 P, Q, R, S, W가 순서대로 공백 하나로 구분되어 주어짐
-> P, Q, R, S, W의 숫자는 1부터 10,000 이하의 자연수
-> 출력은 각 줄 #t로 시작하고, 공백 한 칸 둔 다음 종민이의 수도 요금을 출력
문제 풀이
-> 테스트 케이스를 받을 변수를 선언
-> 반목문을 활용하여 테스트 케이스동안 P, Q, R, S, W의 각 수를 할당
-> CompanyPrice 함수를 통해 종민이의 수도 요금 계산
-> A사의 요금은 리터당 요금 * 한달 사용량 공식으로 요금 계산
-> B사가 만약 한달 사용량이 월간 사용량보다 클 경우
-> B사의 요금은 기본 요금 + 추가 요금 * (한달 사용량 - 월간 사용량) 공식으로 요금 계산
-> B사가 만약 한달 사용량이 월간 사용량보다 작을 경우
-> B사의 요금은 기본 요금으로 계산
-> A사 요금보다 B사 요금이 클 경우 A사 요금으로 반환
-> 혹은 B사 요금보다 A사 요금이 클 경우 B사 요금 반환
#include<iostream> using namespace std; int CompanyPrice(int _priseA, int _priseB, int _monthB, int _plusB, int _water) { int companyA, companyB; companyA = _priseA * _water; if (_water > _monthB) companyB = _priseB + _plusB * (_water - _monthB); else companyB = _priseB; return companyA < companyB ? companyA : companyB; } int main() { int count; cin >> count; for (int i = 0; i < count; i++) { int P, Q, R, S, W; cin >> P >> Q >> R >> S >> W; cout << "#" << i + 1 << " " << CompanyPrice(P, Q, R, S, W) << endl; } return 0; }
'코딩 테스트 > SW Expert Academy' 카테고리의 다른 글
1945. 간단한 소인수분해 (0) 2021.06.22 1986. 지그재그 숫자 (0) 2021.06.22 2072. 홀수만 더하기 (0) 2021.06.21 2071.평균값 구하기 (0) 2021.06.21 2070. 큰 놈, 작은 놈, 같은 놈 (0) 2021.06.16