# 2160. Minimum Sum of Four Digit Number After Splitting Digits
## 題目概要
給定一個正整數 num,num 由四個數組成,找出拆分成兩個數後最小的總和,還是看 Example 更容易理解題意。
```
xample 1:
Input: num = 2932
Output: 52
Explanation: Some possible pairs [new1, new2] are [29, 23], [223, 9], etc.
The minimum sum can be obtained by the pair [29, 23]: 29 + 23 = 52.
Example 2:
Input: num = 4009
Output: 13
Explanation: Some possible pairs [new1, new2] are [0, 49], [490, 0], etc.
The minimum sum can be obtained by the pair [4, 9]: 4 + 9 = 13.
```
## 解題技巧
- 因為要求最小總和,所以我第一個念頭就是將數字由小到大排序。
- 接著我根據兩個範例得到了一個規律,最終的最小值會是由小到大排序後第一個、第三個數組成的一個數,另一個則是第二和第四個組成的一個數,兩數相加就會是結果。比如說 2932 由小到大排為 2239,那麼結果就會是 23 + 29 = 52;另一個範例為 4009,由小到大排為 0049,結果就為 04 + 09 = 13
- 如果不確定推論是否正確,可以多丟幾筆測資進去跑。
## 程式碼
第一種方法, 先轉數字後相加:
```javascript=
var minimumSum = function(num) {
// 將 num 每個位數拆分後存成 array
const arr = num.toString().split('').map(item => parseInt(item, 10));
// 由小到大排序
arr.sort();
// 第一個數為 第一位數 * 10 + 第三位數
const firstNum = (arr[0] * 10 + arr[2]);
// 第二個數為 第二位數 * 10 + 第四位數
const secondNum = (arr[1] * 10 + arr[3]);
return firstNum + secondNum;
};
```

**第二種方法(推薦)**, 用字串相接的特性省去先轉數字的步驟, 可以少一個遍歷:
```javascript=
var minimumSum = function(num) {
// 將 num 每個位數拆分後存成 array
const arr = num.toString().split('');
// 由小到大排序
arr.sort();
return Number(arr[0] + arr[2]) + Number(arr[1] + arr[3]);
};
```
