728x90
코드 힌트
- 팩토리얼 개념 이해하기:
- 팩토리얼은 n!로 표현되며, n부터 1까지의 모든 정수를 곱한 값을 의미합니다. 예를 들어, 5!는 5 × 4 × 3 × 2 × 1입니다. 이 문제에서는 주어진 숫자 n 이하의 가장 큰 팩토리얼 값을 찾아야 합니다.
- 팩토리얼 값 계산하기:
- 팩토리얼을 계산할 때, 초기값을 설정합니다. 팩토리얼 값을 계속 곱해가면서 현재 계산된 팩토리얼 값을 저장합니다.
- 계산 반복하기:
- n이 현재 계산된 팩토리얼 값보다 클 동안 반복합니다. 매 반복마다 팩토리얼의 계수를 증가시키고, 현재 계산된 팩토리얼 값에 계수를 곱하여 업데이트합니다.
- 결과 확인하기:
- 반복이 끝난 후, n과 현재 계산된 팩토리얼 값이 같은지 확인합니다. 만약 같다면 현재 계수가 정답입니다.
- 만약 n이 현재 계산된 팩토리얼 값보다 작다면, 계수는 n을 초과한 팩토리얼 값의 계수를 가지므로, 이전 계수를 반환하여 n 이하의 가장 큰 팩토리얼 계수를 찾습니다.
- 기타 사항:
- 이 방법은 반복적인 곱셈을 사용하여 팩토리얼 값을 계산하고 n과 비교하여 최대 값을 찾는 방식으로, 효율적으로 팩토리얼 계수를 찾을 수 있습니다.
정답은 더보기 클릭
더보기
class Solution {
public int solution(int n) {
// 결과를 저장할 변수 초기화
int result = 1;
// 곱셈 연산을 위한 변수 초기화
int num = 1;
// n이 num보다 클 동안 반복
while (n > num) {
// 결과 변수 값을 증가시킴
result++;
// num에 결과값을 곱하여 업데이트
num *= result;
}
// n이 num과 같다면 현재 결과값을 반환
if (n == num) {
return result;
}
// n이 num보다 작다면 마지막으로 더 작은 결과값을 반환
return result - 1;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] A로 B 만들기 (0) | 2024.08.14 |
---|---|
[프로그래머스] 숨어있는 숫자의 덧셈 (2) (0) | 2024.08.14 |
[프로그래머스] 모스부호 (1) (0) | 2024.08.14 |
[프로그래머스] 진료순서 정하기 (0) | 2024.08.14 |
[프로그래머스] 전국 대회 선발 고사 (0) | 2024.08.13 |