연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.
num = 3, total = 12인 경우 [3, 4, 5]를 return합니다.
입출력 예 #2
num = 5, total = 15인 경우 [1, 2, 3, 4, 5]를 return합니다.
첫 풀이는 start, mid, end 를 구한 후,
num이 홀수 일 때와 짝수 일 때를 분기하여 다르게 작성해주었지만
코드가 길어지고 중복 + 가독성 또한 떨어져서 수정하였다..
start,mid,end값을 구하고 new Array메서드를 이용해 새로운 배열을 생성 한 후 값을 담아주었다.
function solution(num, total) {
let mid = total / num;
let start = Math.ceil(mid - Math.floor(num / 2));
let end = Math.floor(mid + Math.floor(num / 2));
return new Array(end - start + 1).fill().map((arr, i) => {
return i + start;
});
}
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한잔에 5,500원입니다. 머쓱이가 가지고 있는 돈 money가 매개변수로 주어질 때, 머쓱이가 최대로 마실 수 있는 아메리카노의 잔 수와 남는 돈을 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
첫번재 배열요소는 사먹을 수 있는 아메리카노 갯수이므로 가지고있는 돈 / 5500원을 해주어서 소수점을 버려주었다.
두번째 배열요소는 거스름돈이므로 가지고있는 돈에서 5500원을 나눈 나머지를 리턴해주었다.
function solution(money) {
return [parseInt(money / 5500), money % 5500];
}
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
주어진 배열을 역순으로 뒤집는 문제였는데,
reverse() 메서드를 사용할 수 있었지만 사용하지 않고 풀어보았다.
tempArr로 임시 배열을 만든 후,
주어진 배열을 역순으로 push 해준 후 tempArr와 주어진 배열의 길이가 같아지면(종료 조건) tempArr를 리턴하도록 하였다.
function solution(num_list) {
let tempArr = [];
for (let i in num_list) {
tempArr.push(num_list[num_list.length - i - 1]);
if (tempArr.length === num_list.length) return tempArr;
}
}
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다.
구매한 옷의 가격 price가 주어질 때, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
switch 문으로 조건을 분기하여 옷 가격의 할인율을 계산하였다.
🪓 생각보다 switch 문이 손으로 잘 써지지 않아서 연습하고 있다..
할인 적용된 금액에서 소수점을 버려야 했기 때문에 처음에는 parseInt를 사용하였지만,
서칭 결과 ~~ 연산자의 존재를 알게 되었고 이는 Math.floor()와 동일하게 쓰인다고 한다.
그래서 ~~ 연산자로 테스트 해 본 결과 통과하였다.
❗️ 하지만 가독성이 떨어질 수 있으니 주의 하자!!
function solution(price) {
switch (true) {
case price >= 100000 && price < 300000:
return ~~(price * 0.95);
case price >= 300000 && price < 500000:
return ~~(price * 0.9);
case price >= 500000:
return ~~(price * 0.8);
default:
return price;
}
}
정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요.
주어진 배열을 역순으로 뒤집는 문제였는데,
reverse() 메서드를 사용할 수 있었지만 사용하지 않고 풀어보았다.
tempArr로 임시 배열을 만든 후,
주어진 배열을 역순으로 push 해준 후 tempArr와 주어진 배열의 길이가 같아지면(종료 조건) tempArr를 리턴하도록 하였다.
function solution(num_list) {
let tempArr = [];
for (let i in num_list) {
tempArr.push(num_list[num_list.length - i - 1]);
if (tempArr.length === num_list.length) return tempArr;
}
}
추가로 배열이 아닌 문자열 뒤집는 문제가 있었는데,
위 풀이를 바탕으로 하였으나 다른점이 있다면 문자열이므로 join 메서드를 사용하여 배열을 벗기고 문자열로 리턴하였다.
function solution(num_list) {
let tempArr = [];
for (let i in num_list) {
tempArr.push(num_list[num_list.length - i - 1]);
if (tempArr.length === num_list.length) return tempArr.join("");
}
}