본문 바로가기

Fundamentals/Algorithms

[해커랭크] Mini-Max Sum

문제링크

 

Mini-Max Sum | HackerRank

Find the maximum and minimum values obtained by summing four of five integers.

www.hackerrank.com

 

다섯 개의 양의 정수가 주어졌을 때, 정확히 네 개의 정수를 합산하여 계산할 수 있는 최소값과 최대값을 찾습니다. 그리고 두 개의 긴 정수로 구성된 한 줄에 각각의 최소값과 최대값을 출력합니다.

 

예를 들어, 주어진 숫자가 1, 2, 3, 4, 5라면, 다음과 같이 계산할 수 있습니다.

  • 1, 2, 3, 4를 합하면 최소 합은 10이 됩니다.
  • 2, 3, 4, 5를 합하면 최대 합은 14가 됩니다.
  • 함수는 10 14를 출력해야 합니다.

 

풀이 :

 

function miniMaxSum(arr: number[]): void {
    const sortArray = arr.sort((a, b)=> a-b)
    const min = arr.slice(0,4).reduce((acc, cur) => acc + cur ,0)
    const max = arr.slice(-4).reduce((acc, cur) => acc + cur ,0)
    
    console.log(min, max)
}

 

주어진 배열을 오름차순으로 먼저 정렬한 후, 배열의 처음 네 요소와 마지막 네 요소를 각각 합산하여 최소 합과 최대 합을 구합니다. slice 메서드를 활용하여 최소값을 구할 때는 가장 큰 값인 마지막 요소를 제외한 새로운 배열을 생성하고, 이 배열의 요소들을 합산합니다. 최대값을 구할 때는 배열의 끝에서부터 네 번째 요소까지를 포함하는 새로운 배열을 생성하고, 이 배열의 요소들을 합산합니다.

 

'Fundamentals > Algorithms' 카테고리의 다른 글

[해커랭크] Birthday Cake Candles  (0) 2023.11.15
[해커랭크] Staircase  (0) 2023.11.15
[해커랭크] Diagonal Difference  (0) 2023.11.13
[해커랭크] A Very Big Sum  (0) 2023.11.10
[해커랭크] Compare the Triplets  (0) 2023.11.09