🌴 문제
문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴해야 합니다.
🌴 출력
string
타입을 리턴해야 합니다.
🌴 주의사항
- 각 문자열의 길이는 다양합니다.
- 각 문자의 위치를 행, 열로 나타낼 경우, 비어있는 (행, 열)은 무시합니다.
🌴 입출력 예시
let input = [
//
'hello',
'wolrd',
];
let output = readVertically(input);
console.log(output); // --> 'hweolllrod'
input = [
//
'hi',
'wolrd',
];
output = readVertically(input);
console.log(output); // --> 'hwiolrd'
🌴 문제 풀이
function readVertically(arr) {
// TODO: 여기에 코드를 작성합니다.
// 문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴
// 배열 안에서 가장 긴 문장 만큼 반복
// 반복은 배열의 길이만큼
let longLength = 0;
for(let i =0; i<arr.length; i++){
if(longLength < arr[i].length) longLength = arr[i].length;
}
let maxLength = 0;
for(let i = 0; i < arr.length; i++){
if(maxLength < arr[i].length){
maxLength = arr[i].length;
}
}
let result = '';
for(let i = 0; i < maxLength; i++){
for(let j = 0; j < arr.length; j++){
if(arr[j][i] !== undefined)
result += arr[j][i];
}
}
return result;
}
function readVertically(arr) {
let temp = [];
for (let i = 0; i < arr.length; i++) {
let str = arr[i];
for (let j = 0; j < str.length; j++) {
if (temp.length === j) {
temp.push(str[j]);
} else {
temp[j] = temp[j] + str[j];
}
}
}
let result = '';
for (let i = 0; i < temp.length; i++) {
result = result + temp[i];
}
return result;
}
'알고리즘' 카테고리의 다른 글
modulo (0) | 2022.06.15 |
---|---|
superIncreasing (0) | 2022.06.14 |
findBugInApples (0) | 2022.06.10 |
insertDash (0) | 2022.06.08 |
ABCheck (0) | 2022.06.07 |