전체 글

전체 글

    728x90
    반응형

    24416번_알고리즘 수업 - 피보나치 수 1_java

    ● 정리 재귀 public static int fib_recursion(int n) { cnt++; if(n == 1 || n == 2) { return 1; } else { return fib_recursion(n-1) + fib_recursion(n-2); } } 자기자신을 반복해서 호출 f(n)을 구하기 위해 f(n-1), f(n-2)를 구하고 f(n-1), f(n-2)는 다시 쪼개지면서 f를 다시 호출하지 않을때까지 반복하는 방식(하향식) fib(5) = fib(4) + fib(3) = fib(3) + fib(2) + fib(3) = fib(2) + fib(1) + fib(2) + fib(2) + fib(1) = 3 * fib(2) + 2 * fib(1) fib(4) = fib(3) + fib(2..

    2004번_조합 0의 개수_java

    끝자리가 0이 되기 위해서는 10의 배수여야 하고 10의 배수는 2의배수 이면서 5의 배수이다. n이 250일 경우 5를 약수로 가지는 개수는 아래의 표와 같이 5의 배수의 수 + 25의 배수의 개수 + 125의 배수의 개수의 합과 같다. 5 25 = 5 * 5 125 = 5 * 5 * 5 250!의 5를 약수로 가지는 수는 250 / 5 + 250 / 25 + 250 / 125가 된다. 결과값은 (n!의 5를 약수로 가지는 수 - r!의 5를 약수로 가지는 수 - (n-r)!의 5를 약수로 가지는 수) 와 (n!의 2를 약수로 가지는 수 - r!의 2를 약수로 가지는 수 - (n-r)!의 2를 약수로 가지는 수) 중에 최소값을 구하면 된다. ● 코드 package acmicpc; import java...

    1676번_팩토리얼 0의 개수_java

    뒤에 0이 나올려면 10의 배수여야 하고 10=2\*5 이므로 N!의 값이 2를 약수로 가지는 횟수와 5를 약수로 가는지 횟수 중에 최소값을 구하면 된다. 2를 약수로 가지는 횟수보다 5를 약수로 가지는 횟수가 작으므로 N!이 5를 약수로 가지는 횟수를 구하면 된다. ● 코드 package acmicpc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class acmicpc1676 { public static void main(String[] agrs) { try { BufferedReader reader..

    9375번_패션왕 신해빈_java

    의상종류(상의, 신발...) 당 선택가능한 케이스는 그 의상의 케이스+1(해당 의상종류 미선택) 의상을 입을 수 있는 케이스는 각 의상 종류의 케이스+1의 곱들에 1을 뺀 값(모두 미선택 할 경우) 1번 테스트 케이스의 경우 아래의 표와 같이 총 6개의 케이스 중에서 모두 미선택 하는 경우만 빠짐 (eyewear 종류+1) * (headgear 종류+1) - 1 = 2 * 3 - 1 = 5 eyewear headgear x x x hat x turban sunglasses x sunglasses hat sunglasses turban ● 소스 package acmicpc; import java.io.BufferedReader; import java.io.BufferedWriter; import java...

    728x90
    반응형