코딩테스트/SWEA

[SW Expert Academy][D2][Attack][python] 1284. 수도 요금 경쟁

코린영이 2023. 5. 9. 22:02
728x90
반응형

코딩테스트 문제 푸는 방향
1. 문제를 정독한다. 정독하면서 손으로 한 번 풀어본다.
2. 접근 방법을 구상한다.
3. 핵심 코드를 시각적으로 보이도록 손코딩한다. 
4. 코드를 구현한다. 
5. 디버깅 및 개선을 한다.
6. 부분 정답이 나올 시 1번으로 돌아가 더 꼼꼼하게 읽어보고 다른 접근 방법은 없는지 생각해본다. 

1284. 수도 요금 경쟁

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV189xUaI8UCFAZN&categoryId=AV189xUaI8UCFAZN&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=2&pageSize=10&pageIndex=3 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

삼성에 입사한 대단한 종민씨가 수도 회사 A, B 중 하나를 선택하는 문제다.

A 회사는 1리터당 P원의 돈을 내야 하고

B 회사는 기본 요금이 Q원이고 월간 사용량이 R리터 이하인 경우 요금은 기본 요금만 청구된다. 하지만 R 리터보다 많은 양을 사용한 경우 초과량에 대해 1리터당 S원의 요금을 더 내야 한다.
 

 

[입력 사항]

1. T : 테스트 케이스

2. P(A사의 1리터 당 요금), Q(B사의 R리터 이하 요금), R(B사 기준 요금), S(B사의 R리터 이상일 때 1리터 당 요금), W(한달 사용 수도의 양)

(1 ≤ P, Q, R, S, W ≤ 10000, 자연수)

 

 

[문제 해결 방향]

회사가 A일 때 

    요금 = P * W

회사가 B일 때 

    W > R이면

         요금 = Q + S(W-R)

    W <= R이면 

        요금 = Q

 

[파이썬 코드]

T = int(input())
for test_case in range(1, T + 1):
    P, Q, R, S, W = map(int, input().split())
    A = P*W
    B = Q
    if W>R:
        B = Q+S*(W-R)
    print("#{} {}".format(test_case, min(A,B)))

 

[참고 사이트]

없이,, 성공,,ㅎㅋ 

근데 그만한 난이도인듯,,ㅎ

 

[느낀점]

댓글에 어떤 사람이 삼성에 입사했으면 수도요금 고민하지 말고 그냥 다니라던데 완전 공감,,ㅎㅋㅋ

 

728x90
반응형