728x90
반응형

 

문제 1. 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(my_string) {
    let answer = '';
    for (let i = my_string.length - 1; i >= 0; i--) {
        answer += my_string[i];
    }
    return answer;
}

solution 함수는 my_string이라는 인자를 받습니다. 이 인자는 뒤집고자 하는 문자열입니다.
answer 변수는 빈 문자열로 초기화됩니다. 이 변수에 뒤집힌 문자열을 저장할 것입니다.
for 루프를 사용하여 my_string의 뒤에서부터 문자를 하나씩 가져옵니다.
i 변수는 my_string의 길이에서 1을 뺀 값부터 시작하여 0까지 감소합니다. 이렇게 함으로써 문자열을 역순으로 순회합니다.
각 문자를 answer 변수에 추가합니다. my_string[i]는 my_string의 인덱스 i에 해당하는 문자를 의미합니다. 따라서 my_string을 역순으로 순회하며 answer에 문자를 추가하게 됩니다.
최종적으로 answer 변수에 저장된 뒤집힌 문자열을 반환합니다.

 

 

문제 2. "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];

rl.on('line', function (line) {
    input = line.split(' ');
}).on('close', function () {
    const n = Number(input[0]);
    for (let i = 1; i <= n; i++) {
        let row = '';
        for (let j = 1; j <= i; j++) {
            row += '*';
        }
        console.log(row);
    }
});

readline 모듈을 사용하여 사용자로부터 입력을 받아오기 위한 준비를 합니다.
rl 객체를 생성하여 input과 output 스트림을 설정합니다. 이를 통해 사용자 입력을 받고 출력할 수 있습니다.
빈 배열 input을 선언합니다. 이 배열은 사용자 입력을 저장할 것입니다.
rl 객체의 line 이벤트 리스너를 등록합니다. 이벤트는 사용자가 한 줄을 입력할 때마다 발생합니다.
입력받은 한 줄의 문자열을 공백을 기준으로 나누어 input 배열에 저장합니다.
rl 객체의 close 이벤트 리스너를 등록합니다. 이벤트는 사용자 입력이 끝나고 입력 스트림이 닫힐 때 발생합니다.
input[0] 값을 가져와서 숫자로 변환한 후 n 변수에 저장합니다. 이 값은 출력할 삼각형의 높이를 나타냅니다.
for 루프를 사용하여 1부터 n까지 반복합니다. i는 현재 행의 번호를 나타냅니다.
row 변수를 선언하고 초기값을 빈 문자열로 설정합니다. 이 변수에 현재 행에서 출력할 별(*)을 저장할 것입니다.
두 번째 for 루프를 사용하여 1부터 i까지 반복합니다. j는 현재 행에서 출력할 별(*)의 개수를 나타냅니다.
row 변수에 별(*)을 추가합니다.
현재 행의 별(*) 패턴이 완성되면 row를 출력합니다.
n까지의 모든 행에 대해 반복하면 삼각형 모양의 별(*) 패턴이 출력됩니다.

 

결과적으로 높이와 너비가 n인 직각 이등변 삼각형을 출력합니다.

더보기

* 

** 

***

**** 

*****

 

 

 

문제 3. 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

function solution(num_list) {
    let answer = [0, 0]; // 짝수 개수와 홀수 개수를 담을 배열 초기화

    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] % 2 === 0) {
            answer[0]++; // 짝수인 경우 짝수 개수 증가
        } else {
            answer[1]++; // 홀수인 경우 홀수 개수 증가
        }
    }

    return answer;
}

solution 함수는 num_list라는 숫자 배열을 입력받습니다.
answer 변수를 선언하고 [0, 0]으로 초기화합니다. 이 변수는 짝수 개수와 홀수 개수를 담을 배열입니다.
for 루프를 사용하여 num_list의 각 요소에 접근합니다.
현재 요소가 짝수인지 확인하기 위해 num_list[i] % 2 === 0 조건을 사용합니다. % 연산자는 나머지를 구하는 연산자이며, num_list[i]를 2로 나눈 나머지가 0이면 짝수입니다.
만약 현재 요소가 짝수라면, answer[0]을 증가시킵니다. 이는 짝수 개수를 나타내는 배열의 첫 번째 요소입니다.
현재 요소가 홀수인 경우, answer[1]을 증가시킵니다. 이는 홀수 개수를 나타내는 배열의 두 번째 요소입니다.
모든 요소에 대해 반복하면 짝수 개수와 홀수 개수가 answer 배열에 저장됩니다.
최종적으로 answer 배열을 반환하여 함수의 결과로 출력됩니다.

 

 

문제 4. 문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string에 들어있는 각 문자를 n만큼 반복한 문자열을 return 하도록 solution 함수를 완성해보세요.

function solution(my_string, n) {
    let answer = '';

    for (let i = 0; i < my_string.length; i++) {
        for (let j = 0; j < n; j++) {
            answer += my_string[i];
        }
    }

    return answer;
}

solution 함수는 my_string이라는 문자열과 n이라는 숫자를 입력받습니다.
answer 변수를 선언하고 빈 문자열로 초기화합니다. 이 변수는 결과로 반환할 새로운 문자열입니다.
첫 번째 for 루프에서는 my_string의 각 문자에 접근합니다.
두 번째 for 루프에서는 n번만큼 현재 문자를 answer에 추가합니다.
j가 0부터 n-1까지 반복하면서 my_string[i]를 answer에 추가합니다.
이렇게 하면 현재 문자를 n번 반복하여 answer에 추가하는 효과를 얻을 수 있습니다.
모든 문자에 대해 위 과정을 반복하면, answer에는 문자열이 반복된 결과가 저장됩니다.
최종적으로 answer를 반환하여 함수의 결과로 출력됩니다.

+ Recent posts