Java 알고리즘 문제풀이
풀이
문제를 보고 연습장에 써보면 피보나치 수열문제와 유사하다는 것을 눈치챌 수 있다.
바로 재귀함수를 이용하면 쉽게풀리는 문제다.
만약 2층 2호를 구한다면 2층 2호의 값은 2층 1호의 값과 1층 2호 값을 더한 것이라는 것을 알 수 있다.
import java.util.Scanner;
public class java_2775 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
int k = sc.nextInt();
int n = sc.nextInt();
System.out.println(el(k, n));
}
sc.close();
}
private static int el(int k, int n) {
if (n == 0)
return 0;
else if (k == 0)
return n;
else {
return el(k, n - 1) + el(k - 1, n);
}
}
}
'Algorithm > Java' 카테고리의 다른 글
[Java]백준 10972번 :: 다음 순열 (0) | 2019.03.01 |
---|---|
[Java]백준 1978번 :: 소수 찾기 (0) | 2018.12.27 |
[Java]백준 1157번 :: 단어 공부 (0) | 2018.12.25 |
[Java]백준 2675번 :: 문자열 반복 (0) | 2018.12.25 |
[Java]백준 11654번 :: 아스키 코드 (0) | 2018.12.25 |
댓글