문제정보
처음엔 팩토리얼값을 구하는 문제인줄 알고
팩토리얼 값을 구하는 코드를 짰는데 통과가 안되어서 뭐지..? 했네요
매개변수로 주어지는 정수 n보다 같거나 작은 팩토리얼값을 구하는 문제였어요
예시
n result
3628800 10
7 3
나의풀이
function solution(n) {
let counter = 1
let answer = 0
for(i=1 ; i<=10 ; i++) {
counter = counter * i
if(n >= counter) {
answer = i
}
}
return answer
}
간단하게 구현했습니다.
10!보다 큰 수는 주어지지 않으니까 i를 10까지 반복하고
팩토리얼을 n과 비교해주면서 가장 큰 팩토리얼을 찾고 리턴해줬습니다.
다른사람의 풀이
function solution(n) {
let i = 1;
let f = 1;
while (f*i < n) f*=++i;
return i;
}
while문으로 구현하면 더 깔끔하고
더 큰 수까지도 계산할 수 있겠네요
반응형
'programmers' 카테고리의 다른 글
[Programmers Level 0] 가까운수 Javascript (0) | 2022.11.25 |
---|---|
[Programmers Level 1] 진료 순서 정하기 Javascript (0) | 2022.11.25 |
[Programmers Level 0] 중복된 문자 제거 Javascript (0) | 2022.11.25 |
[Programmers Level 0] 합성수 찾기 Javascript (0) | 2022.11.25 |
[Programmers Level 0] 피자 나눠 먹기(2) Javascript (1) | 2022.11.25 |