반응형
[ 팩토리얼 ]
https://school.programmers.co.kr/learn/courses/30/lessons/120848
문제 설명
i 팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
- i! ≤ n
제한사항
- 0 < n ≤ 3,628,800
입출력 예
n | return |
3628800 | 10 |
7 | 3 |
입출력 예 설명
입출력 예 #1
- 피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다.
입출력 예 #2
- 3! = 6, 4! = 24입니다. n이 7이므로, 7 이하의 최대 팩토리얼인 3을 return 합니다.
[ 풀이 ]
using System;
public class Solution {
int answer;
int mul = 1;
public int solution(int n){
for(int i = 1; i <= 10; i++){
mul *= i;
if(mul >= n){
answer = mul > n ? i - 1 : i;
break;
}
}
return answer;
}
}
n이 3,628,800까지인데, 10!이 3,628,800이니까 최대 10번 반복하면 답을 구할 수 있다.
mul에 i를 곱했을 때 값이 n보다 크면 최대 팩토리얼은 n -1이고, n과 같다면 i!이다.
이걸 if문으로 쓸 때보다 삼항연산자로 구현하는 게 코드가 더 짧고 간결하니까 answer의 답을 삼항연산자를 통해 구해주었다.
반응형
'코딩 공부 > 프로그래머스 코딩테스트' 카테고리의 다른 글
[프로그래머스] 연속된 부분 수열의 합 | C# (1) | 2024.04.17 |
---|---|
[프로그래머스] 피보나치 | C# (0) | 2024.04.15 |
[프로그래머스] 나누어 떨어지는 숫자 배열 | C# (0) | 2023.08.29 |
[프로그래머스] 가운데 글자 가져오기 | C# (0) | 2023.08.28 |
[프로그래머스] 2016년 | C# (0) | 2023.08.27 |