여러가지 처리
임의의 개수로 전달되는 위치 인자와 키워드 인자를 받아, 입력된 모든 수의 최소값, 최대값, 평균값, 중간값을 구하는 함수 \(f()\)를 작성하시오.
< 처리조건 >
- 전달받은 위치 인자(\(*args\))의 값들과 키워드 인자(\(**kwargs\))의 값들을 하나의 데이터 모음으로 합쳐서 계산한다.
- 입력되는 모든 인자의 값은 \(1\) 이상 \(100\) 이하의 양의 정수이다. (\(1 \le x \le 100\))
- 중간값(Median)은 전달된 값들을 오름차순 정렬했을 때 가운데 위치한 값이다.
- 데이터 개수가 짝수여서 중간값이 2개 발생하는 경우, 인덱스 기준 \(len // 2\) 위치의 값을 선택한다.
- 함수 \(f()\)는 \((최소값, 최대값, 평균값, 중간값)\) 형태의 튜플(Tuple)로 결과를 반환해야 한다.
함수를 사용하는 코드
작성한 함수는 아래 코드와 함께 실행된다.
t = int(input())
for _ in range(t):
line = input().strip()
tokens = line.split()
pos_args = []
kw_args = {}
for token in tokens:
if '=' in token:
k, v = token.split('=')
kw_args[k] = int(v)
else:
pos_args.append(int(token))
print(f(*pos_args, **kw_args))
위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.
입력
첫째 줄에 테스트 케이스의 개수 \(T\)가 주어진다. (\(1 \le T \le 100\))
둘째 줄부터 \(T\)개의 줄에 걸쳐 각 테스트 케이스의 인자들이 공백으로 구분되어 주어진다.
각 테스트마다 인자는 적어도 1개이상 주어진다.
- 값이 숫자 형태인 경우 위치 인자(\(args\))로 처리된다.
- \(key=value\) 형태인 경우 키워드 인자(\(kwargs\))로 처리된다.
출력
각 테스트 케이스마다 함수 \(f()\)가 반환한 튜플을 한 줄에 하나씩 그대로 출력한다.
예제 입력 1
5
10
1 2 3 4 5
10 20 30
a=7 b=5
10 20 x=5 y=15
예제 출력 1
(10, 10, 10.0, 10)
(1, 5, 3.0, 3)
(10, 30, 20.0, 20)
(5, 7, 6.0, 7)
(5, 20, 12.5, 15)
코멘트