A. Arithmetic Array # 726 Div.2

4112 단어 2021.07.022021.07.02

https://codeforces.com/contest/1516/problem/A
시간 1초, 메모리 256MB

input :

  • t (1≤t≤1000)
  • n (1≤n≤50)
  • a1,…,an (−10^4≤ai≤10^4)

output :

  • For each test case, output a single integer — the minimum number of non-negative integers you have to append to the array so that the arithmetic mean of the array will be exactly 1.
  • 각 테스트케이스에서 한 자리의 정수값을 출력하시오.(추가할 정수의 개수를 출력)

조건 :

  • An array b of length k is called good if its arithmetic mean is equal to 1

  • k길이를 가진 b 배열이 만족하려면 계산값이 1이 되어야 한다.

  • 계산값은 반올림이 수행되지 않는다. 그냥 실수 값 그대로다.

  • In an operation, you can append a non-negative integer to the end of the array

  • 수행 할 때 음수가 아닌 값을 배열에 추가할 수 있다.


배열의 원소들을 더한 값(compare)을 배열의 개수(n)로 나누었을 때 1이 되어야 한다.
이 때에는 3가지 경우가 존재하는데
1. compare가 n보다 큰 경우
2. compare가 n과 동일한 경우
3. compare가 n보다 작은 경우

1의 경우 0을 추가해서 수를 맞춰 줘야 한다. compare과 n의 차이만큼 0의 개수가 추가로 들어가야 한다.
동일한 경우에는 더 이상 건드릴 게 없기 때문에 0을 출력 compare가 n보다 작다면 해당하는 양수 값 하나를 추가해서 답을 만들어 낼 수 있기 때문에 1을 출력한다.

import sys

t = int(sys.stdin.readline())
for i in range(t):
    n = int(sys.stdin.readline())
    data = list(map(int, sys.stdin.readline().split()))

    compare = sum(data)
    if compare > n:
        print(compare - n)
    elif compare == n:
        print(0)
    else:
        print(1)

좋은 웹페이지 즐겨찾기