백준 단계별 풀이
[ 백준 11050번 문제 ] 이항 계수 1 - JAVA
anycoding
2025. 3. 5. 09:45
반응형
다음 문제를 통해 재귀 함수와 이항계수를 활용해 보자.
문제 핵심
- N : 자연수
- K : 정수
풀이 과정
이항 계수는 다음과 같은 공식에 따라 이루어 진다. 이걸 코드로 구현해 보자.
재귀 방식
재귀를 통해 factorial를 해결한다.
public static int factorial(int n){
if(n == 1){
return 1;
}
return factorial(n-1) * n;
}
반복문 방식
반복문을 통해 factorial를 해결한다.
public static int factorial(int n){
int result = 1;
for (int i = n; i > 1; i--){
result *= i;
}
return result;
}
int result = factorial(N) / (factorial(K) * factorial(N - K));
재귀 방식은 위와 같이 StackOverflow현상이 일어났다.
자바의 JVM의 기준 스택 크기의 한계 때문에 재귀 함수 호출 과정에서
StackOverflow현상이 일어난 것으로 보인다.
때문에 반복문을 통해 이를 해결하였다.
반응형