2020.코딩일지
[코플릿]Algorithm Basic-13_readVertically 본문
728x90
문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴해야 합니다.
입출력예시
더보기
//입출력예시
let input = [
//
'hello',
'wolrd',
];
let output = readVertically(input);
console.log(output); // --> 'hweolllrod'
input = [
//
'hi',
'wolrd',
];
output = readVertically(input);
console.log(output); // --> 'hwiolrd'
👻...??몇시간을 붙잡고있었는지모르겠닼ㅋㅋㅋㅋ
콘솔찍었는데도 모르겠다니.. 이런... 한참을 들여다보았고, 조금은 알것같은데 개운치않다 ㅜㅜ
굳이 철자 하나하나 쪼개놓지(split()) 않아도, 인덱스로 불러오면되는구나-
합칠때도 join()하지 않아도 += 으로 계속 넣어도 되는구나~
function readVertically(arr){
let temp = [];
for(let i=0; i<arr.length; i++){ //2단어 'hi','world'
let str = arr[i]; //✅ str = 'hi'
console.log('str은->',str);
for(let k=0; k<str.length; k++){ //'hi' 2글자
if (temp.length === k) { //✅같으면 비었다는뜻. // ---2) temp.length=2개인데, world의 k는 0
console.log('temp길이는->',temp.length);
temp.push(str[k]); //temp는-> 'h', 'i'(str[k]철자하나씩넣은거)
console.log('temp는->',temp);
}else { //뭐라도 있다는 뜻이니까. 조합해서 넣어줌
temp[k] = temp[k]+str[k]; // 'hw', 'io',...
console.log('k값은->',k);
}
}
}
let result = '';
for(let i=0; i<temp.length; i++){ //temp에 작업해놓은게있으니까.
result+= temp[i]; //join안하고 for문돌려서 result에 넣넣
console.log('result는->',result);
}
return result;
}
//킹규명님 노션코드
function readVertically(arr) {
let result = "";
//최대길이 먼저구하고
let max = arr.reduce((pre, cur) => {
if (pre.length <= cur.length) return cur;
else return pre;
});
//최대길이만큼 반복문
for (let i = 0; i < max.length; i++) {
check = 0;
while (arr.length !== check) { //같으면 멈춤
if (arr[check][i]) { //값이있으면 true, 없거나 undefined면, false
result += arr[check][i];
};
check++;
}
}
return result;
}
'algorithm' 카테고리의 다른 글
[JS][코플릿]Algorithm Basic-15_modulo (0) | 2022.08.07 |
---|---|
[코플릿]Algorithm Basic-14_superIncreasing (0) | 2022.08.07 |
[코플릿]Algorithm Basic-12_findBuglnApples (0) | 2022.08.07 |
[코플릿]Algorithm Basic-11_removeExtremes (0) | 2022.08.07 |
[코플릿]Algorithm Basic-10_insertDash (0) | 2022.08.07 |
Comments