[프로그래머스] 230718 코딩테스트 연습

    SMALL

    1. 세로 읽기

    function solution(my_string, m, c) {
        var answer = '';
        let splitArr = [] ;
        let slicedArr = [];
        let oneArrLength = (my_string.length) / m; // 반복 횟수
        
        splitArr = my_string.split('');
        for (let i=0; i<oneArrLength; i++) {
            slicedArr = my_string.slice(i*m, (i+1) * m); // 구간 설정
            answer += slicedArr.charAt(c-1); // c번째 값 꺼내기
            continue;
        }
        
        
        return answer;
    }

     

    2. qr 코드

    function solution(q, r, code) {
        var answer = '';
        let splitArr = [];
        
        splitArr = code.split("");
        for (let i=0; i<splitArr.length; i++) {
            if (i%q == r) {
                answer += splitArr[i];
                continue;
            }
        }
        
        return answer;
    }

     

    3. 문자 개수 세기

    function solution(my_string) {
        var answer = [];
        let alphabetArr = []; //알파벳 저장
        let my_char = "";
        
        // ** Array.from(): 배열의 길이, 초기값 지정 
        const resArr = Array.from({length: 52}, () => 0);
        // 숫자 저장
        
        // 아스키코드 > A~Z: 65~90, a~z: 97~122
        // fromCodePoint() > 아스키코드를 문자로 변환
        for (let i=0; i<26; i++) {
            alphabetArr.push(String.fromCodePoint(65+i));
        }
        for (let k=0; k<26; k++) {
            alphabetArr.push(String.fromCodePoint(97+k));
        }
        
        for(let j=0; j<my_string.length; j++) {
            my_char = my_string.charAt(j);
            for (let s=0; s<52; s++) {
                if (my_char == alphabetArr[s]) {
                    resArr[s] += 1;
                    break;
                }
            }
        }
        
        answer = resArr;
        
        return answer;
    }
    728x90

    댓글