✨ Lv. 0 - 세로 읽기
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181904
문자열 my_string
과 두 정수 m
, c
가 주어집니다. my_string
을 한 줄에 m
글자씩 가로로 적었을 때 왼쪽부터 세로로 c
번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.
my_string
은 영소문자로 이루어져 있습니다.m
≤ my_string
의 길이 ≤ 1,000m
은 my_string
길이의 약수로만 주어집니다.c
≤ m
단순하게 빈 문자열에 my_string
을 길이 m
씩 잘라내어 index가 c - 1
인 문자만을 더해나가 결과를 구하는 방식을 사용하였습니다.
function solution(my_string, m, c) {
let result = '';
while(my_string.length) {
result += my_string[c - 1];
my_string = my_string.slice(m);
}
return result;
}
이를 정규표현식을 사용하면 더 간단히 표현이 가능합니다. m
만큼의 길이를 match
를 이용하여 끊어내어 배열 형태로 받아온 이후, 결과를 구하면 됩니다.
function solution(my_string, m, c) {
return my_string.match(new RegExp(`.{${m}}`, 'g')).reduce((r, v) => r + v[c - 1], '');
}