출처 : https://school.programmers.co.kr/learn/challenges
문제 : i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
재귀 호출문제! 팩토리얼..!! 피하고 싶었지만 이젠 정면 돌파다..
재귀는 2가지 특징이 있다고 한다.
탈출조건(멈춰야하는 조건), 자기자신 호출(재귀)
class Solution {
public int solution(int n) {
int answer = 1;
int temp = 1;
for( int i=1; i<12; i++){
temp *= i;
if(temp == n){
answer = i;
}else if(temp > n){
answer = i-1;
break;
}
}
return answer;
}
}
제한사항에 n이 0보다 크고, 3,628,800 보다 작거나 같다고 되어 있으므로, 10이하여야 했다. i가 1부터 시작하므로 반복 조건은 12로 잡아줌.
참고한 블로그 : https://dhdh-study.tistory.com/100
728x90
300x250