728x90
반응형
프로그래머스 : JavaScript 알고리즘 100일 챌린지 25일차
- 프로그래머스 : https://school.programmers.co.kr/learn/challenges/training?order=acceptance_desc
- 유트브 참고 : https://www.youtube.com/watch?v=RMmOU2u-_as&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS
코딩테스트 입문 Day25
1. 문자열 밀기 : 문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
function solution(A, B) {
var answer = 0;
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
A | B | result |
"hello" | "ohell" | 1 |
"apple" | "elppa" | -1 |
"atat" | "tata" | 1 |
"abc" | "abc" | 0 |
답 확인하기
function solution(A, B) {
let arr = [...A]
for(let i = 0; i< arr.length; i++){
if(A === B)
return i;
else{
arr.unshift(arr.pop())
if(arr.join('') === B)
return i+1;
}
}
return -1;
}
// unshift : 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다.
// pop : 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.
// join : 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
2. 종이 자르기 : 머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다. 정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요.
function solution(M, N) {
var answer = 0;
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
M | N | result |
2 | 2 | 3 |
2 | 5 | 9 |
1 | 1 | 0 |
답 확인하기
function solution(M, N) {
return M * N - 1;
}
3. 연속된 수의 합 : 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
function solution(num, total) {
var answer = [];
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
num | total | result |
3 | 12 | [3, 4, 5] |
5 | 15 | [1, 2, 3, 4, 5] |
4 | 14 | [2, 3, 4, 5] |
5 | 5 | [-1, 0, 1, 2, 3] |
답 확인하기
function solution(num, total){
const answer = []
const start = Math.ceil(total / num) - Math.floor(num/2)
const end = Math.floor(total / num) + Math.floor(num/2)
for(let i=start; i<=end; i++){
answer.push(i)
}
return answer
}
4. 다음에 올 숫자 : 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.
function solution(common) {
var answer = 0;
return answer;
}
길라잡이
- 데이터를 수정해서 답을 구해보세요.
- 예시
common | result |
[1, 2, 3, 4] | 5 |
[2, 4, 8] | 16 |
답 확인하기
function solution(common) {
// 등차수열인지 확인
const nextNum = common[1]-common[0] === common[2]-common[1]
if(nextNum) {
return common[common.length-1]+common[1]-common[0]
} else {
return common[common.length-1]*(common[1]/common[0])
}
}
728x90
반응형