-
[Java 자바] 프로그래머스 Lv 0 - 팩토리얼Study/Java 2024. 10. 29. 11:13728x90반응형
목차
1. 문제 설명
728x90문제 설명
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다.
예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다.
정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
i! ≤ n제한사항
- 0 < n ≤ 3,628,800
2. 입출력 예시
입출력 예시
#1
10! = 3,628,800입니다. n이 3628800이므로 최대 팩토리얼인 10을 return 합니다.
#2
3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.
3. 문제 풀이
반응형문제 풀이
1. while 문을 통해 f(팩토리얼)이 n보다 커질때까지 반복한다.
2. 조건이 맞다면 answer를 1씩 증가시킨다.
3. 조건이 맞다면 f에 answer를 곱하여 다시 넣어준다.
4. answer에서 1를 뺀 값을 반환한다.
class Solution { public int solution(int n) { int answer = 0; int f = 1; // 팩토리얼 계산을 위한 변수 while(f<=n){ answer++; f *= answer; } return answer-1; } }
메모
n이 7일 때, 다음과 같이 나온다.
(1<=7) {answer =1, f =1} → (1! =1)
(1<=7) {answer =2, f =2} → (2! =2)
(2<=7) {answer =3, f =6} → (3! =6)
(3<=7) {answer =4, f =24} → (4! =24)
3!와 4! 사이에 n이 있기 때문에 마지막 answer에서 1을 빼줘야한다.
728x90반응형'Study > Java' 카테고리의 다른 글
[Java 자바] 프로그래머스 Lv 0 - 문자열 정렬하기 (1) (1) 2024.10.30 [Java 자바] 프로그래머스 Lv 0 - 모음 제거 (1) 2024.10.30 [Java 자바] 프로그래머스 Lv 0 - 최댓값 만들기 (1) (0) 2024.10.29 [Java 자바] 프로그래머스 Lv 0 - 합성수 찾기 (0) 2024.10.28 [Java 자바] 프로그래머스 Lv 0 - 주사위의 개수 (0) 2024.10.28