밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. map, split을 사용하는 입력 방식
실수나 정수인 여러 값들이 입력값일 때,
split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,
map 내장 함수로 각각의 값들을 int형이나 float형으로
정수, 실수 자료형으로 변환하는 하는 기법은 매우 많이 쓰입니다.
코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.
num1, num2 = map(int, sys.stdin.readline().split())
2. 홍보를 할 경우의 순수익
문제의 도움말 항목에서도 가르쳐 주고 있는 내용입니다.
홍보를 하는 경우의 순수익을 어떻게 계산할지 생각해봅시다.
예제 설명
1. 첫 번째 예제
- 입력
10 100 70
- 출력
advertise
- 설명
입력한 홍보를 하지 않을 경우 수입, 홍보를 할 경우의 수입, 홍보 비용은 각각 10, 100, 70입니다.
홍보를 할 경우의 순수익은 100 - 70 = 30입니다.
홍보를 할 경우의 순수익인 30이 홍보를 하지 않을 경우 수입인 10보다 크므로
문자열 'advertise'를 출력합니다.
생각한 풀이 과정
세 정수인 홍보를 하지 않을 경우 수입, 홍보를 할 경우의 수입, 홍보 비용을 입력합니다.
입력한 홍보를 할 경우의 수입에서 홍보 비용을 빼서 홍보를 할 경우의 순수익을 구합니다.
홍보를 할 경우의 순수익과 홍보를 하지 않을 경우 수입을 비교해봅니다.
홍보를 할 경우의 순수익이 홍보를 하지 않을 경우 수입보다 크다면,
홍보를 하는 경우가 유리하므로 문자열 'advertise'를 출력합니다.
홍보를 할 경우의 순수익이 홍보를 하지 않을 경우 수입보다 작다면,
홍보를 하지 않는 경우가 유리하므로 문자열 'do not advertise'를 출력합니다.
그 외의 경우인 홍보를 할 경우의 순수익과 홍보를 하지 않을 경우 수입이 같다면,
홍보를 하든 안 하든 상관이 없으므로 문자열 'does not matter'를 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 홍보를 하지 않을 경우 수입(not_promote_revenue),
# 홍보를 할 경우의 수입(after_prmote_revenue),
# 홍보 비용(promotion_expense)를 의미하는 세 정수를 공백으로 구분해 입력합니다.
# 각각 정수형으로 변환합니다.
not_promote_revenue, after_promote_revenue, promotion_expense = map(int, stdin.readline().split())
# 홍보를 할 경우의 수입에서 홍보 비용을 빼서 홍보를 할 경우의 순수익을 계산하고 변수 promote_net_gain에 저장합니다.
promote_net_gain = after_promote_revenue - promotion_expense
# 홍보를 할 경우의 순수익이 홍보를 하지 않을 경우 수입보다 커서 홍보를 하는 경우가 유리하면
if promote_net_gain > not_promote_revenue:
# 문자열 'advertise'를 출력합니다.
print('advertise')
# 홍보를 할 경우의 순수익이 홍보를 하지 않을 경우 수입보다 작아서 홍보를 하지 않는 경우가 유리하면
elif promote_net_gain < not_promote_revenue:
# 문자열 'do not advertise'를 출력합니다.
print('do not advertise')
# 그 외의 경우인, 홍보를 할 경우의 순수익과 홍보를 하지 않을 경우 수입이 같아서 홍보를 하든 안 하든 별 상관이 없으면
else:
# 문자열 'does not matter'을 출력합니다.
print('does not matter')
제출 결과
댓글