작성일 :

문제 링크

5691번 - 평균 중앙값 문제

설명

두 정수 A, B가 주어졌을 때, 다음 조건을 만족하는 세 번째 정수 C를 구하는 문제입니다.

  • 세 수 A, B, C평균중앙값(중간값)이 같아야 합니다.


이때 평균은 다음과 같이 정의됩니다:

\[\text{평균} = \frac{A + B + C}{3}\]

중앙값은 세 수를 오름차순 정렬했을 때 가운데에 위치한 수입니다.

즉, 아래와 같은 조건을 만족하는 C를 찾아야 합니다:

\[\frac{A + B + C}{3} = \text{중앙값}(A, B, C)\]


접근법

  • A, B, C의 평균이 중앙값과 같아야 하므로, 다음 식을 만족해야 합니다:

    \[A + B + C = 3M \Rightarrow C = 3M - (A + B)\]
  • 여기서 MA, B, C의 중앙값이며,
    AB 두 값이 주어졌을 때 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;
}