[프로그래머스-기초] 문자열 바꿔서 찾기

JE·2023년 10월 27일
0

코테/코플릿

목록 보기
30/57

공백으로 구분하기 2

문제 설명

단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한사항

my_string은 영소문자와 공백으로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
my_string에는 단어가 하나 이상 존재합니다.

입출력 예

my_stringresult
" i love you"["i", "love", "you"]
" programmers "["programmers"]

입출력 예 설명

입출력 예 #1
예제 1번의 my_string은 " i love you"로 공백을 기준으로 단어를 나누면 "i", "love", "you" 3개의 단어가 있습니다. 따라서 ["i", "love", "you"]를 return 합니다.

입출력 예 #2
예제 2번의 my_string은 " programmers "로 단어는 "programmers" 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.

💻 내가 작성한 코드

function solution(my_string) {
    const strArr = my_string.split(' ');
    const result = strArr.filter((el) => el !== '');
    return result
}

해당 문제를 봤을 때 split 메소드 를 사용하면 되겠다는 생각을 했다.

split 메소드로 ' ' 공백을 기준으로 나눴다.

filter 메소드는 해당 조건에 맞는 값만 반환 후
해당 요소가 공백이 아닌 것만 반환하도록 했다.

💻 다른 사람이 작성한 코드

function solution(my_string) {
    return my_string.trim().split(/ +/);
}
const solution = my_string => my_string.match(/[^\s]+/g);

내가 잘 모르는 메소드를 사용해 풀이한 코드 2개 가져왔다.

trim()?

trim() 메서드는 문자열 양 끝의 공백을 제거하고 원본 문자열을 수정하지 않고 새로운 문자열을 반환합니다. 여기서 말하는 공백이란 모든 공백문자(space, tab, NBSP 등)와 모든 개행문자(LF, CR 등)를 의미합니다.

한쪽 끝의 공백만 제거한 새로운 문자열을 반환하려면 trimStart() 또는 trimEnd()를 사용하세요.

match()?

match() 메서드는 문자열이 정규식과 매치되는 부분을 검색합니다.


출처 : mdn

trim는 양쪽 여백을 제거해 주는 메소드고 match는 정규식 표현과 일치하는 부분만 반환하는 것 같다.

이렇게 새로운 메소드를 알아는 것 같다.

profile
[프론트 애송이] 작은 깨달음도 기록하기

0개의 댓글