Animated Turtle

Prgrammers

프로그래머스 문제풀기 25일차

훙구 2023. 6. 11. 23:35

...

728x90
반응형

프로그래머스 문제풀기 25일차.

1. 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

function solution(A, B) {
    let last = A.at(A.length - 1);
    let result = A.padStart(A.length + 1, last).slice(0, A.length);
    if(A == B) return 0;
    for (let i = 1; i <= A.length; i++) {
        if (result == B) {
            return i;
         } else {
            last = result.at(result.length - 1);
            result = result.padStart(result.length + 1, last).slice(0, result.length);
        }
    }
    return -1;
}

 


2. 머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.

정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.

function solution(M, N) {
    return (M == 1 && N == 1) ? 0 : M*N-1;
}

 


3. 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

function solution(num, total) {
    let answer = [];
    let mid = parseInt(total / num);
    if (num % 2 == 0) {
        for (let i = mid - (num / 2 - 1); i <= mid + num / 2; i++) {
            answer.push(i);
        }
    } else {
        for (let i = mid - parseInt(num / 2); i <= mid + parseInt(num / 2); i++) {
            answer.push(i);
        }
    }
    return answer;
}

4. 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.

function solution(common) {
    let plus = common[1] - common[0] == common[2] - common[1];
    let multi = common[1] / common[0] == common[2] / common[1];
    if (plus) {
        return common[common.length - 1] + common[1] - common[0];
    }
    if (multi) {
        return (common[common.length - 1] * common[1]) / common[0];
    }
}
728x90
반응형