#1. 문자열 내림차순으로 배치하기
문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한조건
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
풀이
function solution(s) {
// 스프레드 연산자를 배열로 감싸면 split("")를 사용한 것과 같은 효과가 나타난다(각 문자열을 배열로 변환)
// sort 함수를 사용해 정렬하고, 정렬을 반대(reverse)로 한 뒤 합쳐(join) 하나의 문자열로 만든다
return [...s].sort().reverse().join('');
}
// 호출
solution("Zbcdefg"); // "gfedcbZ"
결과
소감
ES6 이후 버전 부터 추가된 스프레드 연산자는 여러모로 유용하게 쓰입니다.
객체를 복사할 떄(깊은복사), 객체를 병합할 때(서로 다른 객체를 하나로 병합), 객체 특정 값 변경할 때(객체의 나머지는 값을 유지), 잔여 연산으로 사용할 때(특정 값을 제외한 나머지를 별도의 변수에 저장) 등에 주로 쓰입니다.
앞으로 코딩할 때나 알고리즘 풀이 시 에 스프레드 연산자를 사용하면 여러모로 유용할 것으로 보입니다.
'Algorithm > programmers' 카테고리의 다른 글
[Algorithm] JavaScript, Level1. 두 정수 사이의 합 (0) | 2022.09.26 |
---|---|
[Algorithm] JavaScript, Level1. 문자열 내 p와 y의 개수 (0) | 2022.09.25 |
[Algorithm] JavaScript, Level1. 문자열 다루기 기본 (1) | 2022.09.22 |
[Algorithm] JavaScript, Level1. 서울에서 김서방 찾기 (0) | 2022.09.22 |
[Algorithm] JavaScript, Level1. 수박수박수박수박수? (0) | 2022.09.21 |