문자열을 입력받아 각 단어를 길이가 짧은 순서(오름차순)대로 재배열한 새로운 문자열을 반환하는 JavaScript 함수를 작성해야 한다고 가정해 보겠습니다.
이 문제는 다음과 같은 순서로 해결할 수 있습니다.
해결 접근 방식
- 문자열을 공백(
' ') 기준으로 분리하여 단어 배열을 만듭니다. sort()메서드와 비교 함수를 사용해 단어를 길이순으로 정렬합니다.- 정렬된 배열을 다시 공백으로 연결하여 하나의 문자열로 반환합니다.
예제 코드
다음은 실제 구현 코드입니다.
const str = 'This is a sample string only';
const arrangeByLength = str => {
const strArr = str.split(' ');
const sorted = strArr.sort((a, b) => {
return a.length - b.length;
});
return sorted.join(' ');
};
console.log(arrangeByLength(str));코드 설명
split(' '): 입력 문자열을 공백을 기준으로 나누어 단어 배열을 생성합니다.sort((a, b) => a.length - b.length): 두 단어의 길이 차이를 비교하여 짧은 단어가 앞에 오도록 정렬합니다.join(' '): 정렬된 단어들을 공백으로 이어 붙여 최종 문자열을 만듭니다.
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다.
a is This only sample string
결과를 보면 1글자인 a, 2글자인 is, 4글자인 This와 only, 그리고 더 긴 단어들이 순서대로 배치된 것을 확인할 수 있습니다. 길이가 같은 단어들(This, only)은 원래 배열의 순서를 유지합니다.