본문 바로가기
자바스크립트 알고리즘 문제

알고리즘 문제 Marathon 1~5

1. 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

# n과 m은 각각 1000이하인 자연수입니다.

 

1
2
3
4
5
6
7
8
9
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]); // 입력받은 n의 첫번째 값이 가로의 길이, 두번째 값이 세로의 길이라고 정의
    let row = '*'.repeat(a); // repeat() 메서드를 이용해 a(가로의 길이)만큼 '*'를 반복한 값을 변수 row에 할당
    for (let i = 0; i < b; i++) {
        console.log(row);
    }; // 가로로 이어진 '*'를 반복문을 통해 b(세로의 길이)만큼 반복
});
cs

 

 

 

 

 

2. 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

# num은 int 범위의 정수입니다.
# 0은 짝수입니다.

 

1
2
3
4
function solution(num) {
    let result = (num % 2 === 0) ? "Even" : "Odd"// num값을 2로 나눈 나머지 값이 0인지 1인지에 따라 짝수, 홀수를 판단후
    return result;                                 // 삼항연산자를 이용해 짝수이면 "Even", 홀수이면 "Odd" 값을 출력하게 함
};
cs
 

 

 

 

3. 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

# s는 길이가 1 이상, 100이하인 스트링입니다.

 

1
2
3
4
5
6
function solution(s) {
    var answer = (s.length % 2 === 0) ? s[((s.length / 2- 1)] + s[(s.length / 2)] : s[((s.length / 2- 0.5)];
    // 문자열의 길이가 짝수라면 문자열 길이를 2로 나눈 값의 -1을 한 값의 위치에 있는 문자와 그 다음 위치의 문자를 더한 값을 출력
    // 홀수라면 길이를 2로 나눈 값에서 -0.5를 한 값의 위치에 있는 문자만 출력
    return answer;
};
cs

 

 

 

 

 

4. 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

# a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
# a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
# a와 b의 대소관계는 정해져있지 않습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
function solution(a, b) {
    var answer = 0;
    if ((b - a) >= 0) {        // a가 b보다 크거나 같을 경우,
        for (let i = 0; i <= (b - a); i++) {
            answer += (a + i);
        };                     // a에 i(1씩 커지는 수)를 a와 b의 차이 값까지 차례로 더한 값을 전부 더하는 것을 반복
    } else {                   // a가 b보다 작을 경우,
        for (let j = 0; j <= (a - b); j++) {
            answer += (a - j);
        };                     // a에 i(1씩 커지는 수)를 a와 b의 차이 값까지 차례로 뺀 값을 전부 더하는 것을 반복
    };
    return answer;
};
cs

 

 

 

 

 

 

 

5. 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

# s의 길이는 1 이상 5 이하입니다.
# s의 맨앞에는 부호(+, -)가 올 수 있습니다.
# s는 부호와 숫자로만 이루어져 있습니다.
# s는 "0"으로 시작하지 않습니다.

 

1
2
3
function solution(s) {
    return +s; // 문자열에 숫자의 사칙연산을 해줌으로써 자동으로 문자열을 숫자로 변환
};
cs

 

'자바스크립트 알고리즘 문제' 카테고리의 다른 글

알고리즘 문제 (Marathon) 6~8  (0) 2023.06.28