목차
문제 설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
제한사항
- 0 < n ≤ 3,628,800
class Solution {
public int solution(int n) {
int i = 1; // 팩토리얼의 초기 값
int factorial = 1;
// i! <= n인 조건을 만족하는 i를 찾기
while (factorial <= n) {
i++; // 다음 숫자로 이동
factorial *= i; // i! 계산
}
return i - 1; // 조건을 만족하는 가장 큰 i 반환
}
}
코드 설명
- 초기값 설정:
- i는 1로 시작하며, factorial은 1이다.
- 예: 1! = 1
- 팩토리얼 계산 반복:
- factorial에 i를 곱하면서 계속 팩토리얼을 계산한다.
- factorial > n이 되는 순간 반복을 종료한다.
- 결과 반환:
- 반복이 종료되었을 때, 마지막으로 조건을 만족한 값은 i - 1이다.
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스, LV.0] 가까운 수 (0) | 2024.12.10 |
---|---|
[프로그래머스, LV.0] 숨어있는 숫자의 덧셈 (2) (0) | 2024.12.10 |
[프로그래머스 LV.0] 진료 순서 정하기 (0) | 2024.12.10 |
[프로그래머스 LV.0] 중복된 문자 제거 (1) | 2024.12.10 |
[프로그래머스 LV.0] 2차원으로 만들기 (1) | 2024.12.02 |