문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
오름차순보다 내림차순으로 정렬했을 때 식이 훨씬 간결해진다.
정답
function solution(n) {
let i = 1;
let f = 1;
// f와 i의 곱이 n보다 작을 때까지 반복한다
// i는 1씩 증가한다
// f에는 i와 f를 곱한 값을 할당한다
while (f * i < n) f *= ++i;
return i;
}
// n이 7일 때
// loop 1 ===> i = 1, f = 1, f * i = 1
// loop 2 ===> i = 2, f = 2, f * i = 4
// loop 3 ===> i = 3, f = 6, f * i = 18
function solution(n) {
for (let i = 1, v = 1; true; v *= ++i) if (v > n) return --i;
}
function solution(n) {
let result = 1;
let answer = [];
for (let i = 1; i <= n; i++) {
result = result * i;
if (result > n) {
break;
} else {
answer.push(result);
}
}
return answer.length;
}