Javascript - 프로그래머스 9일차

이율곡·2023년 6월 15일

Programmers

목록 보기
9/44
post-thumbnail

9일차

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

40%를 달성했다. 벌써 50개의 문제를 풀었고, 남은 문제는 74문제가 남았다. 대략 40~50문제는 쉽게 풀더라도 20개 문제가 어려워서 꽤나 곤욕을 겪을 것 같다.

그러나 꾸준히 해오고 있기 때문에 못 넘을 벽은 없다🧗‍♀️


오늘의 문제

공백으로 구분하기2

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

제한사항

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

입출력 예시

my_stringresult
" 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일차도 어렵지 않게 프로그래머스를 풀었다. 매일 꾸준히 푼다는 거에 의의를 둔다. 꾸준히함으로써 알고리즘에 대한 감각도 익히고, 어떨 때 활용을 해야 하는지 기억함과 동시에 기록도 한다. 즐기면서 하자!

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글