반응형
https://www.acmicpc.net/problem/5063
- 문제
- 문제 풀이
백준 5063번 TGN은 브론즈 3 난이도의 수학 문제이다. 이 문제에서는 우선 테스트 케이스 개수 N이 주어진다. 그리고 N개의 줄에 걸쳐 r, c, e가 주어진다. 이때 r은 광고를 하지 않았을 때 수익, e는 광고를 했을 때의 수익, c는 광고 비용이다. 그리고 이때 광고를 해야 하면 "advertise", 하지 않아야 하면 "do not advertise", 광고를 해도 수익이 차이가 없다면 "does not matter"를 출력하면 된다.
이 문제는 간단하게 풀 수 있다. 우선 광고를 했을 때 이익을 살펴봐야 한다. 이것을 변수 dif라고 부르겠다. 즉, dif = e - c이고 이것은 광고 수익에서 광고 비용을 뺀 가격과 같다.
이 문제는 3개의 경우로 나눌 수 있다.
경우 1 : r > dif
만약에 광고를 하지 않았을 때의 수익이 광고했을 때의 이익보다 더 크면 광고를 당연히 하지 않는 게 더 좋으므로 "do not advertise"를 출력한다.
경우 2 : r = dif
만약에 광고를 하지 않았을 때의 수익이 광고했을 때의 이익과 같으면 광고를 하든 말든 상관없기 때문에 "does not matter"를 출력한다.
경우 3 : r < dif
만약에 광고를 하지 않았을 때의 수익이 광고했을 때의 이익보다 더 작으면 광고를 하는 게 더 좋으므로 "advertise"를 출력한다.
이것을 코드로 옮긴 소스 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine()); //테스트 케이스 개수
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int r = Integer.parseInt(st.nextToken());
int e = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
int dif = e - c; //광고 수익 - 광고 비용
if (r > dif) {
sb.append("do not advertise\n");
} else if (r == dif) {
sb.append("does not matter\n");
} else {
sb.append("advertise\n");
}
}
System.out.print(sb);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 15894번 : 수학은 체육과목 입니다 – JAVA [자바] (0) | 2022.08.09 |
---|---|
[백준] 10833번 : 사과 – JAVA [자바] (0) | 2022.08.09 |
[백준] 5596번 : 시험 점수 – JAVA [자바] (0) | 2022.08.09 |
[백준] 15962번 : 새로운 시작 – JAVA [자바] (0) | 2022.08.09 |
[백준] 15733번 : 나는 누구인가 – JAVA [자바] (0) | 2022.08.09 |
댓글