Q. 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
function solution(numbers) {
numbers.sort((a,b) => b - a)
return numbers[0] * numbers[1];
}
- 1단계. 매개변수로 주어진 배열의 요소들의 범위가 0 ≤ numbers의 원소 ≤ 10,000이기 때문에, 부담없이 매개변수를 sort메서드로 내림차순으로 정렬시킨다.
- 2단계. 그 후, 인덱스 0과 인덱스 1번째 수를 곱하면 최댓값을 만들 수 있다.
Q. i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 4 3 2 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
function solution(n) {
let num = 1;
for (let i = 1; ; i++){
num = num * i
if (num > n) {
return i - 1
}
}
}
- 1단계. 팩토리얼은 1에 곱하는 수를 1씩 늘려가며 계속 곱하는 메커니즘이라는 것을 파악한다.
- 2단계. 조건에 적혀있듯 이 팩토리얼로 구한 수가 n보다 커질때, 바로 직전에 곱한 수를 정답으로 출력한다.
sort((a,b) => b - a)
를 처음 써보았는데, 사고없이 잘 작동하는 것 같아 앞으로도 자주 이용해야겠다.