코딩 공부/코딩테스트

자바스크립트 코딩테스트 입문 (6)

천서리 2023. 5. 21. 14:46
QUOTE THE DAY

“ 당신이 6개월 이상 한 번도 보지 않은 코드는 다른 사람이 다시 만드는 게 훨씬 더 나을 수 있다. ”

- 이글슨 (Eagleson)
반응형

코딩테스트 입문 Day 6 문자열, 반복문, 출력, 배열, 조건문

출처 : https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


문자열 뒤집기

문제

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

 

 

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000

 

입출력 예

my_string result
"jaron" "noraj"
"bread" "daerb"

 

 

입출력 예 설명

 

입출력 예 #1

  • my_string이 "jaron"이므로 거꾸로 뒤집은 "noraj"를 return합니다.

입출력 예 #2

  • my_string이 "bread"이므로 거꾸로 뒤집은 "daerb"를 return합니다.

 

solution.js

function solution(my_string) {
    var answer = '';
    for (var i = my_string.length - 1; i >= 0; i--) {
        answer += my_string.charAt(i);
    }
    return answer;
}
  1. answer라는 빈 문자열을 초기화합니다.
  2. i를 my_string의 마지막 인덱스로 초기화합니다.
  3. i가 0보다 크거나 같을 때까지 반복합니다.
  4. 반복문 안에서 my_string의 i번째 문자를 answer에 추가합니다.
  5. i를 하나씩 감소시킵니다.
  6. 반복문이 종료되면 뒤집힌 문자열인 answer를 반환합니다.

직각삼각형 출력하기

문제

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

 

 

제한사항

  • 1 ≤ n ≤ 10

 

입출력 예

입력 #1

3

출력 #1

*
**
***

 

 

입출력 예 설명

 

입출력 예 #1

  • n이 3이므로 첫째 줄에 * 1개, 둘째 줄에 * 2개, 셋째 줄에 * 3개를 출력합니다.

 

solution.js

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

rl.on('line', function (line) {
    const n = parseInt(line);

    for (let i = 1; i <= n; i++) {
        let row = '';
        for (let j = 1; j <= i; j++) {
            row += '*';
        }
        console.log(row);
    }

    rl.close();
});
  1. readline 모듈을 사용하여 표준 입력을 처리하기 위한 설정입니다. readline은 사용자와 상호작용하면서 텍스트 기반 인터페이스를 만들 수 있게 도와주는 모듈입니다.
  2. createInterface 함수를 사용하여 rl이라는 인터페이스 객체를 생성합니다. rl은 표준 입력(process.stdin)과 표준 출력(process.stdout)을 사용합니다.
  3. rl.on('line', function (line) { ... })은 사용자로부터 입력을 받을 때마다 실행되는 이벤트 핸들러입니다. line은 사용자가 입력한 한 줄의 문자열을 나타냅니다.
  4. parseInt(line)을 사용하여 입력된 문자열을 정수형으로 변환하여 n에 저장합니다.
  5. for 반복문을 사용하여 삼각형을 형성하는 '' 문자열을 생성하고 출력합니다. 외부 반복문에서는 i를 1부터 n까지 1씩 증가시킵니다. 내부 반복문에서는 j를 1부터 i까지 1씩 증가시키며 ''을 row 문자열에 추가합니다.
  6. console.log(row)를 사용하여 row 문자열을 출력합니다. 이렇게 하면 한 줄씩 '*'이 추가되어 삼각형 모양이 만들어집니다.
  7. rl.close()는 입력을 모두 받은 후 인터페이스를 닫아 프로그램을 종료합니다.

짝수 홀수 개수

문제

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

 

 

제한사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000

 

입출력 예

num_list result
[1, 2, 3, 4, 5] [2, 3]
[1, 3, 5, 7] [0, 4]

 

 

입출력 예 설명

 

입출력 예 #1

  • [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

입출력 예 #2

  • [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.

 

solution.js

function solution(num_list) {
    let evenCount = 0;
    let oddCount = 0;

    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] % 2 === 0) {
            evenCount++;
        } else {
            oddCount++;
        }
    }

    return [evenCount, oddCount];
}
  1. evenCount와 oddCount라는 변수를 0으로 초기화합니다. 이 변수들은 각각 짝수와 홀수의 개수를 저장합니다.
  2. i를 0부터 num_list의 길이보다 작을 때까지 1씩 증가시키면서 반복문을 실행합니다.
  3. 반복문 안에서 현재 요소인 num_list[i]가 짝수인지 확인합니다. num_list[i] % 2 === 0는 num_list[i]가 2로 나누어 떨어지는지 확인하는 조건입니다.
  4. 만약 num_list[i]가 짝수라면 evenCount를 1 증가시킵니다.
  5. 그렇지 않으면(num_list[i]가 홀수인 경우), oddCount를 1 증가시킵니다.
  6. 반복문이 종료되면 evenCount와 oddCount를 담은 배열을 반환합니다.

문자 반복 출력하기

문제

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

 

 

제한사항

  • 2 ≤ my_string 길이 ≤ 5
  • 2 ≤ n ≤ 10
  • "my_string"은 영어 대소문자로 이루어져 있습니다.

 

입출력 예

my_string n result
"hello" 3 "hhheeellllllooo"

 

 

입출력 예 설명

 

입출력 예 #1

  • "hello"의 각 문자를 세 번씩 반복한 "hhheeellllllooo"를 return 합니다.

 

solution.js

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

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

    return answer;
}
  1. answer라는 빈 문자열을 초기화합니다. 이 변수는 최종적으로 반환될 반복된 문자열을 저장합니다.
  2. i를 0부터 my_string의 길이보다 작을 때까지 1씩 증가시키면서 반복문을 실행합니다.
  3. 반복문 안에서 현재 문자인 char를 my_string의 i번째 문자로 설정합니다.
  4. char.repeat(n)을 사용하여 char를 n번 반복한 문자열을 생성합니다.
  5. 생성된 반복된 문자열을 answer에 추가합니다.
  6. 반복문이 종료되면 answer를 반환합니다.

 

반응형
Adventure Time - BMO