문제
상근이는 TGN사의 사장이다. TGN은 Teenager Game Network의 약자 같지만, 사실 Temporary Group Name의 약자이다.
이 회사는 청소년을 위한 앱을 만드는 회사이다. 일년에 걸친 개발기간 끝에 드디어 앱을 완성했고, 이제 팔기만 하면 된다.
상근이는 데이트를 인간의 두뇌로 이해할 수 없을 정도로 많이 한다. 따라서 엄청난 데이트 비용이 필요하다. 상근이는 광고를 적절히 해서 수익을 최대한 올리려고 한다.
어느 날 하늘을 바라보던 상근이는 시리우스의 기운을 받게 되었고, 광고 효과를 예측하는 능력을 갖게 되었다.
광고 효과가 주어졌을 때, 광고를 해야할지 말아야할지 결정하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 N이 주어진다. 다음 N개의 줄에는 3개의 정수 r, e, c가 주어진다. r은 광고를 하지 않았을 때 수익, e는 광고를 했을 때의 수익, c는 광고 비용이다. (-106 ≤ r,e ≤ 106, 0 ≤ c ≤ 106)
출력
각 테스트 케이스에 대해서, 광고를 해야 하면 "advertise", 하지 않아야 하면 "do not advertise", 광고를 해도 수익이 차이가 없다면 "does not matter"를 출력한다.
출처
ICPC > Regionals > Europe > Northwestern European Regional Contest > Nordic Collegiate Programming Contest > NCPC 2006 C번
- 문제를 번역한 사람: baekjoon
오늘도 어김없이 알고리즘 문제 풀이를 너무나 좋아하는 상근이가 등장하였습니다.
알고리즘을 제공해주시는 백준 사이트에서 상근이라는 분이 누구일지 정말 궁금해지네요.. 혹시 사장님이신가요?
입력 변수 R 이 광고를 하지 않았을 때의 수익이며,
입력 변수 E가 광고를 하였을 때 수익
마지막으로 입력변수 C는 광고 비용이다.
굉장히 간단한 수학문제이며,
(광고했을 때의 수익) - (광고 비용) > (광고하지 않았을 때 수익)
이 경우라면, advertise를 출력하고
그렇지 않을 경우 do not advertise, 그리고 동일한 경우 dose not matter을 출력하면 되는 문제입니다.
#include<stdio.h>
int main(){
int t,r,e,c;
scanf("%d",&t);
for(int i = 0 ; i < t ; i++){
scanf("%d %d %d",&r,&e,&c);
if(r==(e-c))
printf("does not matter\n");
else if(r > (e-c))
printf("do not advertise\n");
else
printf("advertise\n");
}
}
너무 쉬운 문제라서 딱히 설명드릴만한 내용도 없는 것 같습니다!
수학 문제는 알고리즘 문제 풀이의 기본이며, 문제에서 필요 없는 미사여구들이 많이 추가될 수 있습니다.
그런 내용에 휘말리지 말고 입력과 출력만 봐도 문제는 해결가능한 경우가 많이 있으니
많이 연습해보는 것이 필요합니다!
이상 다이어릿이었습니다!