4828 - minmax

박재현·2022년 2월 14일
0

알고리즘 부수기

목록 보기
13/43
post-thumbnail

문제 설명

정의

입력받은 배열에서 가장 큰 값과 가장 작은 값의 차를 구하여라

입력

3
5
477162 658880 751280 927930 297191
5
565469 851600 460874 148692 111090
10
784386 279993 982220 996285 614710 992232 195265 359810 919192 158175

출력

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스의 최고점과 최저점의 높이 차를 출력한다.

#1 630739
#2 740510
#3 838110

문제 풀이

  1. 배열을 처음부터 끝까지 돌면서
  2. 큰 값을 max_result, 작은 값을 min_result에 최신화
  3. result = max_result - min_result

코드

T = int(input())

for tc in range(1, T+1):
    N = int(input())
    arr = list(map(int, input().split()))

    max_result = min_result = arr[0]

    max_result = reduce(lambda a, b: a if a > b else b, arr)
    min_result = reduce(lambda a, b: a if a < b else b, arr)

    result = max_result - min_result
    print(f'#{tc} {result}')
profile
공동의 성장을 추구하는 개발자

0개의 댓글