9일차
벌써 9일차다. 내가 이렇게 꾸준하게 할 지 몰랐지만, 하면 할수록 나름의 재미를 느낀다. 가끔씩 쉴 때 한 두 문제 푸는 것도 나름 좋다.

40%를 달성했다. 벌써 50개의 문제를 풀었고, 남은 문제는 74문제가 남았다. 대략 40~50문제는 쉽게 풀더라도 20개 문제가 어려워서 꽤나 곤욕을 겪을 것 같다.
그러나 꾸준히 해오고 있기 때문에 못 넘을 벽은 없다🧗♀️
오늘의 문제
공백으로 구분하기2
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자와 공백으로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
- my_string에는 단어가 하나 이상 존재합니다.
입출력 예시
| my_string | result |
|---|
| " i love you" | ["i", "love", "you"] |
| " programmers " | ["programmers"] |
(원래 예시를 보면 각 단어 사이에 공백이 꽤 크게 있다.)
접근방법
나는 이 문제를 처음에는 trim() 메서드로 접근하려 했다. 하지만 trim()은 앞뒤 공백을 제거해주기 때문에 문자 사이에 있는 공백은 처리가 안된다. 그래서 나온 결과는 정규표현식이다.
정규표현식에서 공백 제거하는 방법이 있어서 그걸 활용해서 문제를 풀 수 있었다. 우선 풀이 방법이다.
풀이
function solution(str) {
var answer = [];
answer = str.split(/\s+/).filter(x => x != '');
return answer;
}
split() 메서드 안에 있는 것이 정규표현식이다. /\s+/에서 \s+의 의미는 연속된 공백 문자를 기준으로 split한다. 그렇게 됐을 때 str은 ["","i","love","you"]가 된다. 나머지는 필터로 제거하여 문제를 풀 수 있었다.
정리하기
9일차도 어렵지 않게 프로그래머스를 풀었다. 매일 꾸준히 푼다는 거에 의의를 둔다. 꾸준히함으로써 알고리즘에 대한 감각도 익히고, 어떨 때 활용을 해야 하는지 기억함과 동시에 기록도 한다. 즐기면서 하자!