프로그래머스 - 세로 읽기

Lellow_Mellow·2023년 5월 3일
1
post-thumbnail

✨ Lv. 0 - 세로 읽기

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181904

문제 설명

문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.


제한사항

  • my_string은 영소문자로 이루어져 있습니다.
  • 1 ≤ mmy_string의 길이 ≤ 1,000
  • mmy_string 길이의 약수로만 주어집니다.
  • 1 ≤ cm

풀이 코드 + 설명

단순하게 빈 문자열에 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], '');
}

profile
잔잔한 물결에서 파도로, 도약을 위한 도전. 함께하는 성장

0개의 댓글