アルゴリズム13 ReadVertically
4488 ワード
質問する
文字列が要素の配列を入力すると、文字列を垂直に読み出すときの文字列を返さなければなりません.
プールコード
ルールを定める場合,二重複文により複文の条件や基準を特定することは困難である.
KEY
配列要素の中で最も長い長さを求め,外部クエリの基点とする.これは、2 Dアレイ内の行がドア内で回転し、2 D要素の長さが異なる場合、アレイ要素の中で最も長い行がドアの外で2 Dアレイ内の要素を回転させることができるためです.
文字列が要素の配列を入力すると、文字列を垂直に読み出すときの文字列を返さなければなりません.
プールコード
function readVertically(arr) {
// code goes here
/*
1.배열을 입력받는다.
2.배열의 요소를 세로로 읽는다.
- 세로로 읽는다?
- 규칙 : arr[0][0] + arr[1][0] -> arr[0][1] + arr[1][1] -> arr[0][2] + arr[1][2]
- 첫 번째 인수 범위는 arr의 길이까지, 두 번째 인수는 배열의 요소 중 가장 긴 길이
- 두 번째 인수 : 배열 요소 중 가장 긴 길이를 구한다.
- 이중 for문을 이용해 외부 포문에선 두번째 요소를 기준으로 돌고
- 내부 for문에선 첫 번째 요소를 기준으로 돈다.
- 접근한 각 요소를 result에 할당한다.
3.result를 리턴한다.
*/
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){
continue;
}
result += arr[j][i];
}
}
return result;
}
難点ルールを定める場合,二重複文により複文の条件や基準を特定することは困難である.
KEY
配列要素の中で最も長い長さを求め,外部クエリの基点とする.これは、2 Dアレイ内の行がドア内で回転し、2 D要素の長さが異なる場合、アレイ要素の中で最も長い行がドアの外で2 Dアレイ内の要素を回転させることができるためです.
Reference
この問題について(アルゴリズム13 ReadVertically), 我々は、より多くの情報をここで見つけました https://velog.io/@jing07161/알고리즘-13번-readVerticallyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol