programming

Hackerrank 프로그래밍 퀴즈 Mini-Max Sum 파이썬 풀이 및 해설


by Kitle · 2020. 08. 02.



오늘의 풀어볼 퀴즈는 HackerRank 사이트의 Mini-Max Sum 퀴즈를 풀어 보겠습니다. 

퀴즈 : 5 개의 양의 정수가 주어지면 정확히 5 개의 정수 중 4 개를 합하여 계산할 수있는 최소값과 최대 값을 찾으십시오. 그런 다음 각 최소값과 최대 값을 공백으로 구분 된 두 정수의 단일 행으로 인쇄하십시오.

퀴즈: Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers.


원본 퀴즈 보기 : 해커랭크 사이트에서 보기
풀이 깃허브에서 보기 : github

솔루션
주어진 숫자에 대해서 정렬된 상태로 만드는 것이 팁입니다.
제일 작은 합 : 시작부터 맨 마지막 원소를 제외하고 더하면 됩니다.
제일 큰 합 : 두번째 원소부터 맨 마지막까지 더하면 됩니다.

풀이
def minimaxsum(arr):
arr.sort()
print(sum(arr[:-1]), sum(arr[1:]))


if __name__ == '__main__':
arr = list(map(int, input().rstrip().split()))

minimaxsum(arr)

해설
파이썬의 경우 sum() 안에  list를 넣고 list 의 원소들이 모두 숫자라면 모두 합해 줍니다. 거기에 list slice 를 활용해 원하는 부분만 추출해 줍니다. arr[:-1] 처음부터 마지막 하나의 원소를 제외하고 이며, arr[1:] 는 두번째 원소(시작점이 0입니다)부터 마지막 원소까지를 슬라이스 해줍니다. 이부분을 sum으로 감싸주면 되겠죠?

크게 어렵지 않은 퀴즈였습니다.