728x90
class Solution {
public int solution(int n) {
int answer = 0;
int num = 1;
int k = 1;
// 변수 k 는 i 값을 나타내는 변수.
while(true) { // 무한루프 시작.
// i 팩토리얼 값을 계산, 그 값을 n 과 비교하여
// 조건을 만족할 때까지 계속 반복.
num *= k; // num * k 곱해 i 팩토리얼 값을 계산.
if (num > n) {
answer = k;
break;
}
k++;
}
return answer - 1;
// i 팩토리얼 값이 n을 초과하는 가장 큰 정수 i 를 구하는 것이므로
// 1을 뺀 값을 반환하면 되는 구조.
}
}
* 팩토리얼 이라는 문제다.
* 난이도가 있는 문제였다.
* 팩토리얼에 대한 개념은 알고 있었는데 이걸 코드로 풀어 쓰는것이 생각보다 어려웠던 점이다.
* 풀다가 머리가 안돌아가서 지인 분의 코드를 바탕으로 새로이 학습했다.
728x90
'코딩테스트 연습 > 프로그래머스 Lv.0' 카테고리의 다른 글
프로그래머스 코딩테스트 lv.0 - 문자열 정렬하기 (1) JAVA / 자바 (0) | 2023.08.10 |
---|---|
프로그래머스 코딩테스트 lv.0 - 모음 제거 (Java / 자바) (0) | 2023.08.09 |
프로그래머스 코딩테스트 lv.0 - 최댓값 만들기 (1) (Java) (0) | 2023.08.07 |
프로그래머스 코딩테스트 lv.0 - 합성수 찾기 (Java) (0) | 2023.08.06 |
프로그래머스 코딩테스트 lv.0 - 주사위의 개수 (Java) (0) | 2023.08.05 |