분류 전체보기

    [python] 백준 알고리즘 2525 오븐 시계

    hour, min = map(int, input().split(' ')) min += int(input()) if 1

    [JAVA] 팩토리얼 구하기 (재귀, 메모화)

    import java.util.HashMap; import java.util.Scanner; public class Factorial { static int factorial(int n) { if(n > 0) return n * factorial(n - 1); else return 1; } public static void main(String[] args) { HashMap map = new HashMap(); Scanner sc = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int x = sc.nextInt(); System.out.println(x + "의 팩토리얼은 "+ factorialMemoization(x, map)+"입니다"); ..

    [JAVA] 피보나치 수열 구하기 (재귀, 메모화)

    import java.util.Scanner; public class Pivonacci { static long[] memo; static long f(int n){ if (n

    [JAVA] 재귀함수 메모화

    import java.util.Scanner; public class Memoization { static String[] memo; static void recur(int n){ if (memo[n+1] != null) System.out.print(memo[n+1]); else{ if(n > 0){ recur(n - 1); System.out.println(n); recur(n - 2); memo[n + 1] = memo[n] + n + "\n" + memo[n - 1]; }else{ memo[n + 1] = ""; } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("정수..

    [JAVA] 최대공약수 찾기

    public class Euclid { static int gcd(int x, int y) { if(y == 0) return x; // 나누는 값이 0이면 그냥 x를 반환해라 else return gcd(y, x % y); // x 나누기 y을 하고 몫을 x 나머지를 y - > 다시 재귀 // x 나누기 y 의 나머지가 0이다 - > 최대공약수 } public static void main(String[] args) { System.out.println(gcd(32, 8)); } }

    [JAVA] 하노이 탑 알고리즘

    package Algorithm; import java.util.Scanner; public class Hanoi { static void move(int no, int x, int y) { if (no > 1) move(no - 1, x , 6-x-y); System.out.println("원반"+no+"를 " +x+"기둥에서"+y+"기둥으로 옮김"); if (no > 1) move(no - 1, 6 - x - y , y); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("원반의 개수 :"); move(sc.nextInt(), 1, 3); } /* n개의 원반을 1기둥에서 ..

    [JAVA] 쉘정렬

    package Algorithm; import java.util.Arrays; public class Shell{ static void shellSort(int[] arr){ int n = arr.length; // 8배열이라고 가정 for(int i = n/2; i > 0; i /= 2){ //배열 크기의 반을 구하고 반복마다 나누기 2씩 반복 for(int k = i; k = 0 && arr[j] > tmp; j -= ..

    [JAVA] 단순 삽입정렬

    import java.util.Arrays; public class InsertionSort { static int[] arr = {9,4,2,6,1,3,5,8,7,0}; public static void main(String[] args) { int n = arr.length; for(int i = 1; i 0 && arr[j - 1] > tmp; j--) arr[j] = arr[j - 1]; arr[j] = tmp; } System.out.println(Arrays.toString(arr)); } }