문제 이해하기
문자열을 입력받아, 원본 문장에 포함된 모든 단어를 각각 뒤집은 새로운 문자열을 반환하는 JavaScript 함수를 작성해야 합니다.
예를 들어, 원본 문자열이 다음과 같다면 −
"Hello World how is it outside"
출력 결과는 다음과 같아야 합니다 −
"olleH dlroW woh si ti edistuo"
즉, 단어의 순서는 그대로 유지하되 각 단어 내부의 글자만 거꾸로 뒤집는 것이 핵심입니다.
코드 구현
이제 해당 기능을 수행하는 함수를 작성해 보겠습니다 −
const str = 'Hello World how is it outside';
const reverseSentence = str => {
const arr = str.split(" ");
const reversed = arr.map(el => {
return el.split('').reverse().join("");
});
return reversed.join(" ");
};
console.log(reverseSentence(str));동작 원리
위 코드가 작동하는 과정을 단계별로 살펴보면 다음과 같습니다.
- split(" "): 문장을 공백을 기준으로 분리하여 단어 배열을 만듭니다. 예: ['Hello', 'World', 'how', ...]
- map(): 배열의 각 단어를 순회하며 개별적으로 처리합니다.
- el.split('').reverse().join(''): 각 단어를 글자 단위로 쪼갠 뒤, 순서를 뒤집고 다시 하나의 문자열로 합칩니다. 예: 'Hello' → 'olleH'
- join(" "): 뒤집힌 단어들을 공백으로 연결하여 최종 문장을 완성합니다.
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다 −
olleH dlroW woh si ti edistuo
이처럼 split, map, reverse, join 메서드만 활용하면 별도의 반복문 없이도 간결하고 가독성 좋게 문장의 모든 단어를 뒤집을 수 있습니다.