문자열 세로 추출

문제


문자열에서 각 행의 문자들을 세로로 추출하여 새로운 문자열을 리턴합니다.

 

입력


각행에서는 공백으로 구분된 문자가 들어가고 행마다 개행을 합니다.

 

예시


const test_case1 =`a b c d
e f g h
i j k l
m n o p`

// 출력
aeimbfjncgkodhlp

const test_case2 =`a b d
e f g h
i j k
m n o p`

// 출력
aeimbfjndgkohp

 

풀이


function extractCharacters(dimensionString) {
    const dimension = dimensionString.split('\n').map((e) => e.split(''));
    let result = '';
    let maxLen = 0;
    dimension.forEach((e) => {
        if (maxLen < e.length) maxLen = e.length;
    });

    for (let i = 0; i < maxLen; i++) {
        const row = dimension[i];
        for (let j = 0; j < dimension.length; j++) {
            const item = dimension[j][i];
            if (item) result += item;
        }
    }

    return result;
}

문자열을 2차원 배열로 만듭니다. 각 행의 길이를 계산하여 최대길이를 추출합니다.

열을 기준으로 행을 돌면서 새로운 문자열을 만들어서 리턴합니다.

'코딩문제' 카테고리의 다른 글

진법 변환 계산  (0) 2024.03.31
도화지 색칠하기  (0) 2024.03.31
2차원 배열의 최대 값 및 위치 찾기  (0) 2024.03.30
행렬 덧셈  (0) 2024.03.30
연속된 문자 제외 중복된 문자 체크  (0) 2024.03.30