문제
문자열에서 각 행의 문자들을 세로로 추출하여 새로운 문자열을 리턴합니다.
입력
각행에서는 공백으로 구분된 문자가 들어가고 행마다 개행을 합니다.
예시
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 |