문자열 밀기
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A
와 B
가 매개변수로 주어질 때, A
를 밀어서 B
가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B
가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
function solution(A, B) {
let answer = 0;
let aArr = A.split('');
for(let i = 0; i < A.length; i++) {
if(aArr.toString().replaceAll(',', '') === B) break;
aArr.unshift(aArr[A.length - 1]);
aArr.pop();
answer += 1;
if(answer === A.length) answer = -1;
}
return answer;
}
종이 자르기
머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다.
정수 M
, N
이 매개변수로 주어질 때, M
x N
크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
function solution(M, N) {
var answer = 0;
return (M - 1) + ((N - 1) * M);
}
연속된 수의 합
연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num
과 total
이 주어집니다. 연속된 수 num
개를 더한 값이 total
이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
function solution(num, total) {
let div = Math.floor(total / num);
let sum = 0;
while(true) {
for(let i = 0; i < num; i++) {
sum += div + i;
}
if(sum === total) {
break;
} else if(sum < total) {
div += 1;
sum = 0;
} else if(sum > total) {
div -= 1;
sum = 0;
}
}
let answer = [];
for(let i = 0; i < num; i++) {
answer.push(div + i);
}
return answer;
}
다음에 올 숫자
등차수열 혹은 등비수열 common
이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
function solution(common) {
/*
* 등차수열 혹은 등비수열이 아닌 경우가 없고,
* 등비수열인 경우 공비는 0이 아닌 정수
*/
return common[1] - common[0] === common[2] - common[1] ? common[common.length - 1] + (common[1] - common[0]) : common[common.length - 1] * (common[1] / common[0]);
}
중간중간 일정 때문에 못푸는 날이 있었는데, 아무튼 프로그래머스 입문캘린더 종료.
'코딩테스트' 카테고리의 다른 글
뇌주름 살리기 - 21 (0) | 2025.02.08 |
---|---|
뇌주름 살리기 - 20 (0) | 2025.02.06 |
뇌주름 살리기 - 19 (0) | 2025.02.04 |
뇌주름 살리기 - 18 (0) | 2025.02.02 |
뇌주름 살리기 - 17 (0) | 2025.01.31 |