연습장

48. 세로 읽기 본문

프로그래머스/0단계

48. 세로 읽기

js0616 2023. 7. 10. 20:46

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

 


흔히 말하는 세로 드립 문제이다. 

 

주어진 문자열을 m 만큼씩 끊어서 2차원으로 만들고 c 번째 열의 세로를 읽는 문제이다.

 

따라서 문자열의 각 행을 배열에 끊어서 저장하고 

 

m=4 인 배열의 경우 각 인덱스는

0번째는 문자열의 0 - 3 까지

1번째는 문자열의 4 - 7 까지

2번째는 문자열의 8 - 11 까지

...

5번째는 문자열의 16 - 19 까지

각각 새로운 배열 arr1 에 저장하고 

arr1 의 원소들에 대해서 각각 c = 2 번째 글자를 가져오게된다. 

 

그 중에서 원하는 값을 각 배열에서 하나씩 가져오게 된다. 

 

일반화하여 만들게 되면 다음과 같다. 

 

        function solution(my_string, m, c) {
            var answer = '';
            let arr1 = []
            // 배열로 만든다.
            for (let i = 0; i < my_string.length / m; i++) {
                arr1.push(my_string.slice(m * i, m * (i + 1)))
            }
            // 원하는 값만 가져온다.
            for (x of arr1) {
                answer += x[c - 1]
            }

            return answer;
        }

 

for 문은 직접 적어보면서 짜는게 좋은거같다. 

 

 

'프로그래머스 > 0단계' 카테고리의 다른 글

50. 리스트 자르기  (0) 2023.07.10
49. 문자개수 세기  (0) 2023.07.10
47. 문자열 뒤집기  (0) 2023.07.10
46. 문자열의 앞의 n글자  (0) 2023.07.10
45. 접미사인지 확인하기  (0) 2023.06.25