[백준 5691] 평균 중앙값 문제 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
두 정수 A
, B
가 주어졌을 때, 다음 조건을 만족하는 세 번째 정수 C
를 구하는 문제입니다.
- 세 수
A
,B
,C
의 평균과 중앙값(중간값)이 같아야 합니다.
이때 평균은 다음과 같이 정의됩니다:
\[\text{평균} = \frac{A + B + C}{3}\]중앙값은 세 수를 오름차순 정렬했을 때 가운데에 위치한 수입니다.
즉, 아래와 같은 조건을 만족하는 C
를 찾아야 합니다:
접근법
-
\[A + B + C = 3M \Rightarrow C = 3M - (A + B)\]A
,B
,C
의 평균이 중앙값과 같아야 하므로, 다음 식을 만족해야 합니다: -
여기서
M
은A
,B
,C
의 중앙값이며,
A
와B
두 값이 주어졌을 때M = A
라고 가정하면C = 2A - B
가 됩니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System;
class Program {
static void Main() {
while (true) {
var input = Console.ReadLine().Split();
int a = int.Parse(input[0]);
int b = int.Parse(input[1]);
if (a == 0 && b == 0) break;
Console.WriteLine(2 * a - b);
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a, b;
while (cin >> a >> b && (a || b))
cout << 2 * a - b << "\n";
return 0;
}