파이썬 알고리즘

SWEA 13564 min max 를 푸는 3가지 방법

뜻 지, 깨달음 오 2022. 9. 3. 23:59

1) min max 함수를 써서 푸는 방법

T = int(input())

for tc in range( 1, T+1):
    n = int(input())
    arr = list(map(int, input().split()))
    print(f'#{tc} {max(arr)-min(arr)}')

변수만 입력받은 뒤 max, min 함수만 쓰면 되는 간단한 방법

 

2) sorted 함수 써서 푸는 방법

T = int(input())

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

    arr = sorted(arr, key= lambda x: x)
    print(f'#{tc} {arr[-1]-arr[0]}')

sorted로 오름차순 정렬한 array를 다시 arr에 저장한 후,

가장 끝 값(제일 큰 값)에서 가장 작은 값(제일 작은 값)을 빼는 방법

 

3) 다른 함수 안쓰고 오직 for문만을 써서 푸는 방법

T = int(input())

for j in range(T):
    ind_case_n = int(input())
    a = list(map(int, input().split()))
    result = 0
    max_n = 0
    min_n = 99999999999

    for i in a:
        if i > max_n:
            max_n = i

        if i < min_n:
            min_n = i

        result = max_n - min_n

    print(f'#{j+1} {result}')

for문을 돌면서 max_n, min_n을 계속 대체해주는 방법

max_n의 초기값은 나올 수 있는 가장 작은값보다 작고,

min_n의 초기값은 나올 수 있는 가장 큰 값보다 크게 설정하는게 좋다.

'파이썬 알고리즘' 카테고리의 다른 글

SWEA 13565 전기버스  (0) 2022.09.07
SWEA 13569 그래비티 풀이  (1) 2022.09.07
<level: 9> 풀이의 key point들  (0) 2022.09.06
<level: 8.5> 풀이의 key point들  (0) 2022.09.06
<Level: 16> 풀이의 key point들  (0) 2022.08.24