연습장
48. 세로 읽기 본문
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 |