https://programmers.co.kr/learn/courses/30/lessons/12917
function solution(s) {
var answer = '';
var lenS = s.length;
var temp1=[];
var temp2=[];
var regexUpper = /[A-Z]/g;
var regexLower = /[a-z]/g;
temp1 = s.match(regexLower);
temp2= s.match(regexUpper);
if(temp1 !== null){
temp1.sort().reverse();
}else{
temp1 = [];
}
if(temp2 !== null){
temp2.sort().reverse();
}else{
temp2=[];
}
var newArr = temp1.concat(temp2);
answer = newArr.join("");
return answer;
}
a. 문제를 제대로 안읽음 - 내림차순인데 오름차순으로 구함
b. 알고리즘 지식 부족 - sort method를 변형하면 되는데, 변형방법이 바로 떠오르지 않음
c. 이상한 method조합..으로 해결 - reverse쓸거면 대소문자 왜나눴지..어차피 reverse되는데..
d. 오래걸림...30mins
function solution(s) {
var answer = '';
var arr = s.split('');
var reversed = arr.sort().reverse();
answer = reversed.join('');
return answer;
}
function solution(s) {
var answer = '';
var arrayForString = [];
var lengthOfString = s.length;
for(var i=0; i<lengthOfString; i++){
arrayForString[i] = s[i];
}
arrayForString.sort(function(a,b){
if(a<b){
return 1;
} else if (a>b){
return -1;
}
return 0;
});
answer = arrayForString.join('');
return answer;
}
Array method - sort(), reverse(), join(), concat()
sort() - ascending, descending order function
String method - match()®ex, split()
1.arr.sort([compareFunction])
에서 compareFunction(a,b)
은 정렬순서를 정의하는 함수. 주어지지 않을 경우에는 입력값들이 모두 string으로 변환되어 유니코드 표준으로 정렬(오름차순).
2.compareFunction(a, b)
반환값이 0보다 작으면, a의 index가 b보다 작다. 반환값이 0보다 크면, b의 index가 a보다 작다.
3.number 비교를 위해서는 array.sort((a,b) => a-b)
로 오름차순 정렬 가능.
(a-b가 0보다 작은 값을 반환하는 경우는 오름차순을 의미)