개발 기록 남기기✍️

[프로그래머스] 잘라서 배열로 저장하기 본문

코딩 테스트 연습

[프로그래머스] 잘라서 배열로 저장하기

너해동물원 2023. 1. 2. 16:28

🗒️ 문제 설명

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

 

 

⚠️ 제한 사항

  • 1 ≤ my_str의 길이 ≤ 100
  • 1 ≤ n  my_str의 길이
  • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

 

 

👀 입출력 예

my_str n result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

❇️ 나의 풀이

  • 정규표현식을 사용하면 아주 깔끔쓰!
  • .{1, 3}의 경우, .(마침표)는 임의의 한 문자와 일치를 뜻하고 {1,3}은 앞의 조건이 1개 이상 3개 이하 연속 일치를 뜻한다.
  • 즉 .{1,3}은 모든 문자를 1개 이상 n개 이하씩 묶어서 배열로 반환한다.
  • 그런데 문제가 있다, n은 변수이기 때문에 백틱으로 묶어 `/.{1,${n}/g` (리터럴)로 표현하면 정규표현식이 아닌 문자 데이터로 인식이 되기 떄문에 동작하지 않는다.
  • 그렇기 때문에 new RegExp로 정규표현식을 생성한 뒤, 변수에 할당한 뒤 정규표현식 자리에 변수를 넣도록 한다.
function solution(my_str, n) {
    var reg = new RegExp(`.{1,${n}}`, 'g')
    return my_str.match(reg)
}