SWEA 4828 min max

Chloé·2020년 8월 10일
0

#code_a_week_ago

목록 보기
2/4
post-thumbnail

SWEA 4828 [파이썬 S/W 문제해결 기본] 1일차 - min max

draft 2020-08-04
modify 2020-08-10

문제 소개

SWEA > LEARN > Course > Programming Intermediate > 파이썬 SW문제해결 기본 List 1 > 6차시 1일차 - min max

https://swexpertacademy.com/main/learn/course/subjectDetail.do?courseId=AVuPDN86AAXw5UW6&subjectId=AWOVFCzaqeUDFAWg#

  • input을 이용해 주어진 값을 list에 넣고, 해당 list의 최댓값 / 최솟값을 구하는 기본적인 문제.

  • 파이썬 내장함수인min(), max()를 사용하면 간단하게 풀 수 있다.

    📌 min(iterable) : 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 반환하는 함수
    📌 max(iterable) : 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 반환하는 함수
    💡 min, max는 인수로 숫자형 뿐만 아니라 문자열도 입력 가능하다!

  • 그러나 파이썬을 배우는 과정 중에는 최대한 빌트인 함수에 의존하지 않고, 간단한 함수들은 직접 구현해보는 연습을 하고자 했다.

draft

-> max(), min()을 함수로 정의했다.

T = int(input())

for x in range(1, T+1):

    N = int(input())
    ai = list(map(int, input().split()))

    def max(ai):
        max = ai[0]
        for k in range(1, N):  # 0 1 2 3 4 5 6 7 8 9
            if ai[k] > max:    # 첫 번째 숫자와 9번째 숫자까지를 비교해가며 max 할당
                max = ai[k]
        return max

    def min(ai):
        min = ai[0]
        for k in range(1, N):
            if ai[k] < min:
                min = ai[k]
        return min

    result = max(ai) - min(ai)

    print('#{} {}'.format(x, result)) 

modified

T = int(input())

for x in range(1, T+1):

    N = int(input())
    ai = list(map(int, input().split()))

    max = ai[0]
    min = ai[0]
    for num in ai:
        if max < num:
            max = num
        if num < min:
            min = num
    
    result = max - min
    
    print('#{} {}'.format(x, result))
  • 함수를 따로 정의하지 않으면 더 빠르게 풀 수 있다.
  • for문을 두 번 사용하여 min, max를 각각 도출하는 대신 한 번 순회하며 두 값을 한꺼번에 찾아냈다.
profile
chloe w/ 13e

0개의 댓글