알파벳의 아스키코드 값을 비교한 뒤 내림차순으로 문자열을 정렬하는 문제로,
reverse(), sort(), join() 함수를 활용하여 해결할 수 있다.
나는 이렇게 작성하였다.
function solution(s) {
s = [...s]
return s.sort().reverse().join('')
// s 를 배열로 바꿔주는 대신 split() 메서드를 활용하여 그 역할을 수행할 수 있다.
// s.split('').sort().reverse().join('')
}
배열의 요소를 '유니코드'에 따라 정렬한 뒤, 그 배열을 반환. 따라서, 원본 배열의 변화를 가져온다.
숫자배열의 경우 문자열로 파싱한 뒤 정렬되기 때문에 [2, 12].sort() 수행 시,
[12, 2] 순으로 정렬되는 것에 주의해야 한다.
배열 순서를 반전하고 변형된 원본 배열을 반환한다.
[3, 0, 1].reverse() => [1, 0, 3]
모든 배열의 요소를 연결하여 하나의 문자열로 반환해준다.
join() 메서드의 파라미터는 구분자의 기준 을 나타내며,
[3, 12, 5, 9, 77].join() // expected : '3,12,5,9,77'
[3, 12, 5, 9, 77].join('') // expected : '3125977'
사고력을 향상시키기 위해 시작한 알고리즘 풀이는 자바스크립트의 기본 함수들도 학습하게 해주고 있다. 이전에는 함수를 공부할 때 타인의 블로그들을 참조하곤 했으나 최근에는 js의 공식문서 mdn을 활용한다. 공식문서가 얼마나 잘 정리되어 있는지를 깨닳음과 동시에 함수를 사용할 수 있는 데이터의 형태와 함수가 반환하는 데이터 형태를 잘 익히는 것이 중요하다는 생각이 든다.
기본과 기초를 기록하며 느리지만 천천히 그리고 꾸준히..!