상세 컨텐츠

본문 제목

알고리즘 문제풀이 - readVertically

Programming Language/JavaScript

by Yongari 2022. 12. 26. 22:15

본문

 

문제 설명 : 문자열을 요소로 갖는 배열을 입력받은 뒤 문자열을 세로로 읽었을 때의 문자열을 리턴해야한다.

 

입력

인자 1 : arr

  • string 타입을 요소로 갖는 배열

출력

  • 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) {
  let maxLength = 0;
  //제일 긴 문자열의 길이를 체크  
  for (let i = 0; i < arr.length; i++) {
    if (maxLength < arr[i].length) {
      maxLength = arr[i].length;
    }
  }

  //hi, world 중 world가 max length
  //maxLength =5
  // i = 0 1 2 3 4
  // j = 0, 1
  // arr[0][0] + arr[1][0] + arr[0][1] + arr[1][1]
  result = "";
  // 반복 순회하면서 문자열을 세로로 읽었을 때의 결과값 저장 
  for (let i = 0; i < maxLength; i++) {
    for (let j = 0; j < arr.length; j++) {
      //   console.log("i", i);
      //   console.log("j", j);
      if (arr[j][i] === undefined) {
        continue;
      }
      result += arr[j][i];
    }
  }
  return result;
}

 

출처 : 코드스테이츠

관련글 더보기