Programmers

[프로그래머스][JS] 세로 읽기

winter17 2023. 5. 11. 23:58

https://school.programmers.co.kr/learn/courses/30/lessons/181904

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정

function solution(my_string, m, c) {
	// m만큼 잘라서 2차원 배열 만들기
    var answer = [];
    for (let i = 0; i < my_string.length; i += m){
        answer.push([my_string.slice(i, i+m)])
    }
    // forEach메서드 사용해서 2차원배열에 접근하고 문자열 출력
    let newStr = ''
    answer.forEach(el => newStr += el[0][c-1])
    return newStr;
}

 

answer = [ [ 'ihrh' ], [ 'bakr' ], [ 'fpnd' ], [ 'oplj' ], [ 'hygc' ] ]

[의문점]

answer = [ [ 'ihrh' ], [ 'bakr' ], [ 'fpnd' ], [ 'oplj' ], [ 'hygc' ] ] 일 때,

내가 짠 코드를 보면 el[0][c-1] 이렇게 했는데 어떻게 통과가 된거지...? 

answer 배열 길이만큼 숫자가 반복되었어야했는데 첫번째가 [0]으로 고정되어있는데 왜 ...?

문제 오류인건가 내가 발견하지 못한 부분이 있는건가

저 부분을 좀 더 정확하게 해결하려면 for문을 answer길이만큼 반복시켜서 접근하면 된다!

 


리뷰

자바스크립트로 2차원 배열은 처음 풀어보는데 이럴때 forEach를 사용한다는 것을 알게되었다

for문이 더 익숙해서 왜 forEach를 써야하는지 의문이었는데 이런 경우에 쓰나보다