코딩 챌린지
문제 설명
머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해보세요.
정답
function solution(n, k) {
if(n >= 10){
k -= Math.floor((n/10));
}
return 12000*n + 2000*k;
}
이 함수는 n과 k라는 매개변수를 받아들입니다. 함수의 목적은 주어진 n과 k에 대한 계산을 수행하고, 그 결과값을 반환하는 것입니다.
n이 10 이상인 경우, k에서 (n/10)을 내림한 값을 뺍니다.
최종 결과값은 12000*n + 2000*k입니다.
이 함수는 주어진 조건에 따라 k의 값을 조정한 후, n과 k를 사용하여 계산된 결과값을 반환합니다.
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
정답
function solution(n) {
let sum = 0;
for (let i = 2; i <= n; i += 2) {
sum += i;
}
return sum;
}
위의 코드에서는 sum 변수를 초기화하고, for 루프를 사용하여 2부터 n까지 짝수를 차례로 더해나갑니다. i 변수를 2씩 증가시켜 짝수만을 처리하며, sum 변수에 현재 짝수를 더합니다. 최종적으로 sum 변수를 반환하여 결과를 얻습니다.
문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
정답
function solution(numbers) {
return numbers.reduce((a, c) => (a + c), 0) / numbers.length;
}
reduce()메서드가 핵심이기에 이 메서드에 대해서 설명 하겠습니다.
reduce()는 JavaScript 배열에서 사용되는 내장 메서드 중 하나입니다. 이 메서드는 배열의 각 원소를 누적하거나 조작하여 하나의 결과값을 생성합니다. reduce() 메서드는 콜백 함수와 초기값을 인자로 받습니다.
reduce() 메서드의 구문은 다음과 같습니다:
arr.reduce(callback[, initialValue])
arr: reduce()를 호출하는 배열입니다.
callback: 각 배열 원소에 대해 실행되는 콜백 함수입니다. 이 콜백 함수는 네 개의 인자를 받습니다:
accumulator (누산기): 이전 콜백 호출의 반환값 또는 초기값입니다.
currentValue (현재 값): 현재 처리 중인 배열 원소입니다.
currentIndex (현재 인덱스): 현재 처리 중인 배열 원소의 인덱스입니다.
array (배열): reduce()를 호출한 원본 배열입니다.
initialValue (초기값, 선택사항): 첫 번째 콜백 호출에서 누산기의 초기값으로 사용되는 값입니다. 생략하면 배열의 첫 번째 원소가 초기값이 됩니다.
콜백 함수는 배열의 첫 번째 원소부터 마지막 원소까지 순차적으로 실행됩니다. 각 호출에서 이전 콜백의 반환값이 다음 호출의 accumulator로 전달됩니다. 마지막 호출의 반환값은 reduce() 메서드의 결과값이 됩니다.
reduce() 메서드는 배열을 순회하면서 원소들을 결합하거나 조작하는데 유용합니다. 예를 들어, 배열의 합계, 평균, 최대/최소 값 등을 계산하거나 배열을 다른 형태로 변환하는 데 활용할 수 있습니다.