...
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
반응형