다섯 개의 양의 정수가 주어졌을 때, 정확히 네 개의 정수를 합산하여 계산할 수 있는 최소값과 최대값을 찾습니다. 그리고 두 개의 긴 정수로 구성된 한 줄에 각각의 최소값과 최대값을 출력합니다.
예를 들어, 주어진 숫자가 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 |