🌠 문제

문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 1 ≤ my_str의 길이 ≤ 100
  • 1 ≤ n ≤ my_str의 길이
  • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

🌠 입출력 예

my_str n result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

🌠 입출력 예 설명

입출력 예 #1

  • "abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.

입출력 예 #2

  • "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.

유의사항

  • 입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.

🧞 풀이

function solution(my_str, n) {
    let answer = [];
    for (let i = 0; i < my_str.length; i += n) {
        answer.push(my_str.slice(i, i + n));
    }
    return answer;
}

🌠 문제

머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

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

🌠 입출력 예

array result
[7, 77, 17] 4
[10, 29] 0

🌠 입출력 예 설명

입출력 예 #1

  • [7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.

입출력 예 #2

  • [10, 29]에는 7이 없으므로 0을 return 합니다.

🧞 풀이

function solution(array) {
    let answer = 0;
    for (let i of array) {
        answer += i.toString().split("").map(Number).filter(e => 7 === e).length;
    }
    return answer;
}

🌠 문제

영어 대소문자로 이루어진 문자열 my_string이 매개변수로 주어질 때, my_string을 모두 소문자로 바꾸고 알파벳 순서대로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요.

🌠 제한사항

  • 0 < my_string 길이 < 100

🌠 입출력 예

my_string result
"Bcad" "abcd"
"heLLo" "ehllo"
"Python" "hnopty"

🌠 입출력 예 설명

입출력 예 #1

  • "Bcad"를 모두 소문자로 바꾸면 "bcad"이고 이를 알파벳 순으로 정렬하면 "abcd"입니다.

입출력 예 #2

  • "heLLo"를 모두 소문자로 바꾸면 "hello"이고 이를 알파벳 순으로 정렬하면 "ehllo"입니다.

입출력 예 #3

  • "Python"를 모두 소문자로 바꾸면 "python"이고 이를 알파벳 순으로 정렬하면 "hnopty"입니다.

🧞 풀이

function solution(my_string) {
    return my_string.toLowerCase().split("").sort((a, b) => a.localeCompare(b)).join("");
}

🌠 문제

어떤 세균은 1시간에 두배만큼 증식한다고 합니다. 처음 세균의 마리수 n과 경과한 시간 t가 매개변수로 주어질 때 t시간 후 세균의 수를 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 1 ≤ n ≤ 10
  • 1 ≤ t ≤ 15

🌠 입출력 예

n t result
2 10 2048
7 15 229,376

🌠 입출력 예 설명

입출력 예 #1

  • 처음엔 2마리, 1시간 후엔 4마리, 2시간 후엔 8마리, ..., 10시간 후엔 2048마리가 됩니다. 따라서 2048을 return합니다.

입출력 예 #2

  • 처음엔 7마리, 1시간 후엔 14마리, 2시간 후엔 28마리, ..., 15시간 후엔 229376마리가 됩니다. 따라서 229,376을 return합니다.

🧞 풀이

function solution(n, t) {
    for (let i = 1; i <= t; i++) {
        n = n * 2;
    }
    return n;
}

🌠 문제

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 1 ≤ n ≤ 1,000,000

🌠 입출력 예

n result
144 1
976 2

🌠 입출력 예 설명

입출력 예 #1

  • 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.

입출력 예 #2

  • 976은 제곱수가 아닙니다. 따라서 2를 return합니다.

🧞 풀이

function solution(n) {
    if (parseInt(Math.sqrt(n)) === Math.sqrt(n)) {
        return 1;
    } else {
        return 2;
    }
}

🌠 문제

문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 1 ≤ str1의 길이 ≤ 100
  • 1 ≤ str2의 길이 ≤ 100
  • 문자열은 알파벳 대문자, 소문자, 숫자로 구성되어 있습니다.

🌠 입출력 예

str1 str2 result
"ab6CDE443fgh22iJKlmn1o" "6CD" 1
"ppprrrogrammers" "pppp" 2
"AbcAbcA" "AAA" 2

🌠 입출력 예 설명

입출력 예 #1

  • "ab6CDE443fgh22iJKlmn1o" str1에 str2가 존재하므로 1을 return합니다.

입출력 예 #2

  • "ppprrrogrammers" str1에 str2가 없으므로 2를 return합니다.

입출력 예 #3

  • "AbcAbcA" str1에 str2가 없으므로 2를 return합니다.

🧞 풀이

function solution(str1, str2) {
    let arr1 = str1.split("");
    let arr2 = str2.split("");
    while (arr1.length != 0) {
        let tmp = arr1.shift();
        let toggle = -1;
        if (tmp === arr2[0]) {
            for (let i = 0; i <= arr2.length - 2; i++) {
                if (arr1[i] != arr2[i+1]) {
                    toggle = 1;
                    break;
                } 
            }
            if (toggle == -1) {
                return 1;
            }
        }
    }
    return 2;
}

🌠 문제

덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 
  • 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.
  • 1 ≤ quiz의 길이 ≤ 10
  • X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며,
    각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
  • X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.
  • -10,000 ≤ X, Y ≤ 10,000
  • -20,000 ≤ Z ≤ 20,000
  • [연산자]는 + 와 - 중 하나입니다.

🌠 입출력 예

quiz result
["3 - 4 = -3", "5 + 6 = 11"] ["X", "O"]
["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] ["O", "O", "X", "O"]

🌠 입출력 예 설명

입출력 예 #1

  • 3 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O" 입니다. 따라서 ["X", "O"]를 return합니다.

입출력 예 #2

  • 19 - 6 = 13 은 옳은 수식이므로 "O", 5 + 66 = 71 은 옳은 수식이므로 "O", 5 - 15 = 63 은 틀린 수식이므로 "X", 3 - 1 = 2는 옳은 수식이므로 "O" 따라서 ["O", "O", "X", "O"]를 return합니다.

🧞 풀이

function solution(quiz) {
    let answer = [];
    while (quiz.length != 0) {
        let exp = quiz.shift().split(" ");
        let a = 0; 
        if (exp[1] == "+") {
            a = parseInt(exp[0]) + parseInt(exp[2]);
        } else {
            a = parseInt(exp[0]) - parseInt(exp[2]);
        }
        let b = exp[4];
        if (a == b) {
            answer.push("O");
        } else {
            answer.push("X");
        }
    }
    return answer;
}

 

🌠 문제

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요

🌠 제한사항

  • 0 ≤ n ≤ 1,000,000

🌠 입출력 예

n result
1234 10
930211 16

🌠 입출력 예 설명

입출력 예 #1

  • 1 + 2 + 3 + 4 = 10을 return합니다.

입출력 예 #2

  • 9 + 3 + 0 + 2 + 1 + 1 = 16을 return합니다.

🧞 풀이

function solution(n) {
    let answer = 0;
    let array = n.toString().split("").map(Number);
    while (array.length != 0) {
        answer += array.shift();
    }
    return answer;
}

🌠 문제

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.

🌠 제한사항

  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist의 크기 ≤ 100
  • 1 ≤ numlist의 원소 ≤ 100,000

🌠 입출력 예

n numlist result
3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12]
5 [1, 9, 3, 10, 13, 5] [10, 5]
12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12]

🌠 입출력 예 설명

입출력 예 #1

  • numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.

입출력 예 #2

  • numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.

입출력 예 #3

  • numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.

🧞 풀이

function solution(n, numlist) {
    let answer = [];
    while (numlist.length != 0) {
        let tmp = numlist.shift();
        if (tmp % n == 0) {
            answer.push(tmp);
        }
    }
    return answer;
}

+ Recent posts