문제설명
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자와 공백으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
- my_string에는 단어가 하나 이상 존재합니다.
입출력 예
입출력 예 #1
- 예제 1번의 my_string은 " i love you"로 공백을 기준으로 단어를 나누면 "i", "love", "you" 3개의 단어가 있습니다. 따라서 ["i", "love", "you"]를 return 합니다.
입출력 예 #2
- 예제 2번의 my_string은 " programmers "로 단어는 "programmers" 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.
코드 설명
const words = my_string.split(" ");
- my_string을 split(" ") 메서드를 사용하여 공백을 기준으로 분리하여 배열 words에 저장합니다.
return words.filter(word=>word !=="")
- filter() 메서드를 사용하여 배열 words를 필터링합니다. filter() 메서드는 배열의 각 요소에 대해 콜백 함수를 실행하고, 콜백 함수가 true를 반환하는 요소들로 이루어진 새로운 배열을 생성합니다.
콜백 함수는 다음과 같이 정의되어 있습니다
(word=>word !=="")
- word: 현재 처리 중인 배열 words의 요소 값.
- word !== "": 현재 요소인 word가 빈 문자열이 아닌지 확인하는 조건식입니다.
즉, filter() 메서드는 빈 문자열이 아닌 각 단어들로 이루어진 새로운 배열을 생성합니다.
이렇게 필터링된 words 배열이 반환됩니다.
예를 들어, my_string이 " This is a sample string "인 경우를 살펴보겠습니다.
my_string을 공백을 기준으로 분리하여 배열 words를 생성합니다.
배열 words는 ["", "", "", "This", "", "", "is", "", "", "a", "", "sample", "", "string", "", ""]입니다.
filter() 메서드를 사용하여 빈 문자열이 아닌 요소들로 이루어진 새로운 배열을 생성합니다.
빈 문자열인 ""은 필터링되므로 결과 배열은 ["This", "is", "a", "sample", "string"]입니다.
소스코드&결과
소스코드
function solution(my_string) {
const words = my_string.split(" ");
return words.filter(word=>word !=="")
}
실행결과
'Coding Test > 프로그래머스' 카테고리의 다른 글
[JAVA] 로또의 최고 순위와 최저 순위 (2) | 2023.08.02 |
---|---|
[JavaScript] 0 떼기 (2) | 2023.08.01 |
[JavaScript] 최댓값과 최솟값 (0) | 2023.07.30 |
[JAVA] 다트 게임 (2) | 2023.07.28 |
[JAVA] 기사단원의 무기 (2) | 2023.07.27 |