readVertically
문제
문자열을 요소로 갖는 배열을 입력받아 문자열을 세로로 읽었을 때의 문자열을 리턴해야 합니다.
입력
인자 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 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
}
# 정규식으로도 쉽게 풀이 가능
let newstr=temp.join()
return newstr.replace(/\,/g,'');
해설
1. 빈 배열을 정의한다.
2. if 빈 배열에 만약 빈 배열의 길이와 반복의 숫자가 같으면 str배열에 요소들을 넣어준다.( 이 말은 아무것도 없다면 빈 배열의 길이는 요소가 추가되기 전 i의 숫자와 같으므로 가능하다)
3. else 기존 배열에 arr[1]은 무조건 같지 않으므로 하나씩 문자열에 넣어주면 된다.
4. 이런 배열을 이제 하나의 문자열로 바꿔주면 끝.
'나를 성장시키는 알고리즘' 카테고리의 다른 글
| 배열을 객체로 전환하기 (0) | 2021.09.29 |
|---|---|
| 객체를 중첩배열로 리턴하는 함수 (0) | 2021.09.28 |
| 나를 성장시켜주는 알고리즘#5문자열 중 가장 긴 문자를 출력해라 (0) | 2021.09.06 |
| 나를 성장시켜주는 알고리즘 #4 객체 (0) | 2021.09.03 |
| 나를 성장시켜주는 알고리즘 #3 문자열을 배열로 배열을 문자열로 바꾸는 방법 (0) | 2021.08.02 |