본문 바로가기
기초다지기/JS 코딩테스트

[Lv0] 세로읽기

by 김빵그 2023. 7. 24.

✏️ 문제설명

문자열 my_string을 m수만큼 잘라 c번째 오는 텍스트들만 합치는 것

 

🔎 내 답

나는 바보 .. for문밖에 모르는 바보

function solution(my_string, m, c) {
    var answer = [];
    var string='';
    for(let i = 0; i < my_string.length; i += m) {
        answer.push(my_string.slice(i, i+m));
    }
    for(let j = 0; j < answer.length; j++) {
        string+= answer[j][c-1]
    }
    return string
}
  • for (let i = 0 ...) : 문자열을 잘라서 anwer 배열에 저장 
  • slice(startIndex, endIndex)를 사용하였다
  • for (let j = 0....) : 또다시 anwer 배열을 순회하여 문자열을 만듦 > 비효율적

개선된 코드

function solution(my_string, m, c) {
    var answer = '';

    for(let i = 0; i < my_string.length; i += m) {
        answer += my_string[i + c - 1]
    }
    return answer;
}
  • my_string[i + c - 1] : 선택 문자를 바로 answer에 추가하는 방식

그 외의 코드

function solution(my_string, m, c) {
    let answer ="";
    for(let i = c-1; i < my_string.length ; i+=m) answer+=my_string[i];
    return answer;
}

 

'기초다지기 > JS 코딩테스트' 카테고리의 다른 글

배열 순서 위치 변경하기  (0) 2023.08.02
[Lv0] 빈배열 추가 삭제  (1) 2023.08.01
[Lv0] js 팩토리얼  (0) 2023.07.18
[Lv0] 등차수열  (0) 2023.07.17
[Lv0] 수 조작하기 2  (0) 2023.07.16