본문 바로가기
프로그래머스 코딩 테스트

프로그래머스 : JavaScript 알고리즘 100일 챌린지 6일차

by dongjin6539 2023. 5. 21.
728x90
반응형

프로그래머스 : JavaScript 알고리즘 100일 챌린지 6일차

 

코딩테스트 입문 Day6

 

 

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

function solution(my_string) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
my_string return
"jaron" "noraj"
"bread" "daerb"

 

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

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 my_string이라는 문자열을 매개변수로 받습니다.

해당 함수의 동작은 다음과 같습니다:

빈 문자열 answer를 생성합니다.

for 루프를 사용하여 i를 my_string의 마지막 인덱스부터 0까지 역순으로 반복합니다.

answer += my_string[i]를 실행합니다. 이는 my_string의 i번째 문자를 answer 문자열에 추가합니다.

answer 문자열을 반환합니다.

결과적으로, solution 함수는 my_string 문자열을 역순으로 변환하여 반환합니다. 예를 들어, 입력이 'hello'인 경우 'olleh'를 반환합니다.

 

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 () {
    console.log(Number(input[0]));
});

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시

 

답 확인하기
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 starStr = "";
      for (let j = 0; j < i; j++) {
        starStr += "*";
      }
      console.log(starStr);
    }
});

 

해설 확인하기

주어진 코드는 Node.js 환경에서 사용자로부터 입력을 받아와서 별(*)을 출력하는 프로그램입니다.

해당 코드의 동작은 다음과 같습니다:

readline 모듈을 불러와서 인터페이스를 생성합니다. 이를 통해 사용자로부터의 입력을 처리할 수 있습니다.

빈 배열 input을 생성합니다.

rl.on('line', ...)은 사용자로부터 한 줄씩 입력을 받을 때마다 호출되는 이벤트 핸들러입니다.

받은 입력을 공백으로 구분하여 input 배열에 저장합니다.

rl.on('close', ...)는 입력을 모두 받은 후에 호출되는 이벤트 핸들러입니다.

input[0]을 숫자로 변환하여 n에 저장합니다.

1부터 n까지 반복문을 실행합니다.

starStr이라는 빈 문자열을 생성합니다.

0부터 i-1까지 반복문을 실행합니다.

starStr에 별(*)을 추가합니다.

starStr을 출력합니다.

프로그램이 종료됩니다.

위의 코드는 사용자로부터 입력받은 숫자 n에 따라 별 모양의 패턴을 출력하는 프로그램입니다.

 

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

function solution(num_list) {
    var answer = [];
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
num_list result
[1, 2, 3, 4, 5] [2, 3]
[1, 3, 5, 7] [0, 4]

 

답 확인하기
function solution(num_list) {
  let even = 0;
  let odd = 0;
  for (let i = 0; i < num_list.length; i++) {
    if (num_list[i] % 2 === 0) {
      even++;
    } else {
        odd++;
    }
  }
  return [even, odd];
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 num_list라는 숫자 배열을 매개변수로 받습니다.

해당 함수의 동작은 다음과 같습니다:

even과 odd라는 변수를 0으로 초기화합니다. 각각은 짝수와 홀수의 개수를 나타냅니다.

for 루프를 사용하여 i를 0부터 num_list 배열의 길이까지 반복합니다.

if 문을 사용하여 num_list[i]가 짝수인지 홀수인지 확인합니다.

num_list[i] % 2 === 0는 num_list[i]를 2로 나눈 나머지가 0인지를 확인하는 조건입니다.

num_list[i]가 짝수인 경우 even 변수를 증가시킵니다.

num_list[i]가 홀수인 경우 odd 변수를 증가시킵니다.

[even, odd] 형태의 배열을 반환합니다. 이 배열은 짝수의 개수와 홀수의 개수를 담고 있습니다.

결과적으로, solution 함수는 num_list 배열에서 짝수와 홀수의 개수를 세어서 [even, odd] 형태의 배열로 반환합니다.

 

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

function solution(my_string, n) {
    var answer = '';
    return answer;
}

길라잡이

  • 변수 answer의 데이터를 수정해서 답을 구해보세요.
  • 예시
my_string n result
"hello" 3 "hhheeelllooo"

 

답 확인하기
function solution(my_string, n) {
    var answer = '';
    for (let i = 0; i < my_string.length; i++) {
        answer += my_string[i].repeat(n);
    }
    return answer;
}

 

해설 확인하기

주어진 코드는 solution이라는 함수를 정의하고 있습니다. 이 함수는 my_string이라는 문자열과 n이라는 정수를 매개변수로 받습니다.

해당 함수의 동작은 다음과 같습니다:

빈 문자열 answer를 생성합니다.

for 루프를 사용하여 i를 0부터 my_string의 길이까지 반복합니다.

my_string[i].repeat(n)을 실행합니다. 이는 my_string의 i번째 문자를 n번 반복한 문자열을 생성합니다.

생성한 문자열을 answer에 추가합니다.

answer 문자열을 반환합니다.

결과적으로, solution 함수는 my_string 문자열의 각 문자를 n번 반복하여 생성한 문자열을 결합한 결과인 answer를 반환합니다. 예를 들어, my_string이 'abc'이고 n이 3인 경우, 'aaabbbccc'를 반환합니다.

728x90
반응형