728x90
난이도 - 브론즈 3
문제
세 정수 A, B, C의 평균은 (A+B+C)/3이다. 세 정수의 중앙값은 수의 크기가 증가하는 순서로 정렬했을 때, 가운데 있는 값이다.
두 정수 A와 B가 주어진다. 이때, A, B, C의 평균과 중앙값을 같게 만드는 가장 작은 정수 C를 찾는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, A와 B가 주어진다. (1 ≤ A ≤ B ≤ 109) 입력의 마지막 줄에는 0이 두 개 주어진다.
출력
각 테스트 케이스에 대한 정답을 한 줄에 하나씩 출력한다.
A는 B보다 작거나 같다. 세 수를 크기순으로 정렬했을 때 나올 수 있는 결과는 아래 3가지이다.
A B C
A C B
C A B
평균과 중앙값을 같게 만드는 수 중 가장 작은 수를 구해야 하므로 중앙값이 A라고 가정한다. 그럼 다음과 같은 수식을 유도할 수 있다.
(A + B + C) / 3 = A
A + B + C = 3A
C = 2A - B
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main5691 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuffer sb = new StringBuffer();
while (true) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
if (A == 0 && B == 0)
break;
int C = 2 * A - B;
sb.append(C).append('\n');
}
bw.write(sb.toString());
bw.flush();
br.close();
bw.close();
}
}
728x90
'백준 > Java' 카테고리의 다른 글
[백준 자바] 별 찍기 시리즈(8~9) - 2445, 2446번 (0) | 2024.06.14 |
---|---|
[백준 자바] 31428번(엘리스 트랙 매칭) (0) | 2024.06.14 |
[백준 자바] 2738번(행렬 덧셈) (1) | 2024.05.05 |
[백준 자바] 골뱅이 찍기 (23812) (2) | 2024.04.27 |
[백준 자바] 8393번(합) - 1부터 n까지의 합 (2) | 2024.04.26 |