sortAndStar.js (8kyu 57)
Codewars 알고리즘 풀이
Problem
- You must sort it alphabetically and then return the first value.
- 알파벳순으로 정렬하고, 첫 번째 값을 반환한다.
- The returned value must be a string, and have
***
between each of its letters.- 반환된 값은 문자열(string)이어야 하고, 각 글자 사이에
***
가 있어야 한다.
- 반환된 값은 문자열(string)이어야 하고, 각 글자 사이에
Solution 01
function sortAndStar(arr) {
let firstElement = arr.sort()[0];
let result = firstElement[0];
for (let i = 1; i < firstElement.length; i++) {
result += '***' + firstElement[i];
}
return result;
}
sortAndStar(['c', 'bb', 'aaa']); // a***a***a
sortAndStar(['ape', 'ace', 'abc']); // a***b***c
sort()
메소드배열의 element를 정렬한 후, 그 배열을 반환한다.
Solution 02
function sortAndStar(arr) {
return arr.sort()[0].split('').join('***');
}
sortAndStar(['c', 'bb', 'aaa']); // a***a***a
sortAndStar(['ape', 'ace', 'abc']); // a***b***c
split()
메소드문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
join()
메소드배열의 모든 element를 결합하고, 새 문자열로 반환한다.
Solution 03
function sortAndStar(arr) {
return arr.sort()[0].replace(/(.)(?!$)/g, i => i + '***');
}
sortAndStar(['c', 'bb', 'aaa']); // a***a***a
sortAndStar(['ape', 'ace', 'abc']); // a***b***c
정규표현식 (RegExp)
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
.
: 개행 문자를 제외한 모든 문자와 대응
x(?!y)
: y가 뒤따라오지 않는 x에만 일치
$
: 입력의 끝 부분에 대응
g
: 전역 검색