문제
광고 없을 때 수익 R, 광고 시 수익 E, 광고 비용 C가 주어지면 광고 여부를 결정하라.
입력
첫째 줄에 테스트 케이스 수 N, 이후 N줄에 R, E, C가 주어진다.
출력
각각 advertise, does not matter, do not advertise 중 하나를 출력한다.
예제
| 입력 | 출력 |
|---|---|
3 0 100 70 100 130 30 -100 -70 40 | advertise does not matter do not advertise |
풀이
광고 이익 (E - C)과 비광고 이익 R을 비교한다.
- 광고 순이익 = E - C, 비광고 순이익 = R
E - C > R이면 advertiseE - C == R이면 does not matterE - C < R이면 do not advertise
핵심 아이디어: R - E + C의 부호로 세 경우를 O(1)에 판별한다.
코드
#include <stdio.h>
int main()
{
int n, r, e, c, i;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%d %d %d", &r, &e, &c);
if (r - e + c < 0)
{
printf("advertise\n");
}
else if (r - e + c == 0)
{
printf("does not matter\n");
}
else
printf("do not advertise\n");
}
}복잡도
- 시간: O(N)
- 공간: O(1)