Problem
- In this Kata, you will be given a string that has lowercase letters and numbers.
- Your task is to compare the number groupings and return the largest number.
- 숫자 그룹을 비교하고, 가장 큰 숫자를 반환한다.
Solution 01
function largestNum(str) {
let arr = str.replace(/[^0-9]/g, ' ').split(' ');
return Math.max(...arr);
}
largestNum('1how23are4you5'); // 23
largestNum('1how23are45you6'); // 45
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
[^]
: 문자 클래스 [] 내에서는 not을 의미
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
Math.max()
: 값이 가장 큰 수를 반환한다.
Solution 02
function largestNum(str) {
let arr = str.match(/\d+/g);
return Math.max(...arr);
}
largestNum('1how23are4you5'); // 23
largestNum('1how23are45you6'); // 45
\d
: 숫자에 대응 (= [0-9]
)
+
: 1회 이상 연속으로 반복되는 부분에 대응
Solution 03
function largestNum(str) {
let arr = str.match(/\d+/g);
return +arr.sort((a, b) => b - a)[0];
}
largestNum('1how23are4you5'); // 23
largestNum('1how23are45you6'); // 45
sort()
: 배열의 element를 정렬한 후, 그 배열을 반환한다.