목록zerebase/기초수학 (5)
Hyunebee
재귀함수로 푼 하노이탑이다. 재귀함수는 종료조건과 문제정의를 잘해야한다. 종료조건은 블럭이 하나 남았을때 첫번째 기둥에서 마지막 기둥으로 옮기는것 이다. 문제정의 1.N개의 원반을 3번째(가정)으로 옮기기 위해서는 N-1개의 원반을 가운데로 이동을 해야함 2.N번째 원반을 3번째(가정)으로 이동시켜야 한다. 3.그리고 가운데에 있던 N-1개의 원반을 3번째(가정)으로 이동시켜야 한다. 문제를 알고 읽는것이 일단 가장 중요하다. public class Practice5 { static StringBuffer stringBuffer; public static void solution(int n) { stringBuffer = new StringBuffer(); recursion(3,1,2,3); System..

제곱과 제곱근 우리가 자주 사용하는 Math를 대신해 바빌로니아 점화식으로 제곱근을 구할 수 있다. public class Practice { static double sqrt(int a, int n){ double result = 1; for(int i = 0; i

조합 서로다른 n개중에서 r개를 선택하는 방법 (순서x, 중복x) 중복조합 서로다른 n개중에서 r개를 선택하는 방법 (순서x, 중복o) ex) 4가지 서로다른 숫자중 3자리숫자를 만들수 있는 경우의 수(순서x, 중복 x) public class Practice { void combination(int[] arr, boolean[] visited, int depth, int n, int r) { if(r == 0){ // 더이상 채울 자리가 없으면 for(int i = 0; i < n; i++){ if(visited[i]){ System.out.print(arr[i] + " "); } } System.out.println(); return; } if(depth == n){ // 더이상 탐색할 곳이 없다면 ..

순열 1.순열 순서를 정해서 나열한다. 서로 다른 n개중 r개를 선택하는 경우의 수(순서를 보장하고, 중복을 허용하지 않는다.) 2.중복 순열 서로 다른 n개중 r개를 선택하는 경우의 수(순서를 보장하고, 중복을 허용한다.) 3.원 순열 원모양 테이블에 n개의 원소를 나열 => 회전하면서 다른 순서도 같은순서로 변함 원위에 순열을 올리는게 아니라 회전하는 순열이다. 이때 회전으로 겹치지 않는 수도 고려해줘야 한다. ex) 4가지 서로다른 숫자중 3자리숫자를 만들수 있는 경우의 수(중복 x) swap을 이용한 구현 import java.util.ArrayList; //서로 다른 4가지 수를 이용하여 세자리 자연수를 만드는 방법 public class Practice { void permutation(int..
경우의 수 어떠한 사건이 일어날 수 있는 가짓수 1.합의 법칙(n(A)∪n(B) => n(A) + n(B) - n(A∩B)) 사건 A 또는 B가 일어날 확률 (사건 A따로 B따로 or) 2.곱의 법칙(n(A x B) => n(A) x n(B)) 사건 A 와 B가 동시에 일어날 확률(And) 대표적인 문제(약수구하기, 최소공배수, 최대공약수) import java.util.ArrayList; public class Practice { //약수 public ArrayList getDivisor(int num){ ArrayList arrayList = new ArrayList(); for(int i=1; i