반응형
dackyy
대기의 연대기
dackyy
전체 방문자
오늘
어제
  • 분류 전체보기 (49)
    • java (7)
    • 코딩테스트 (23)
    • python (10)
    • Network (2)
    • Web (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • java
  • 시프트 연산자
  • TLS
  • SSL
  • 기본 자료형
  • 배열
  • 조건문
  • 증감 연산자
  • 제어문
  • 연산
  • 산술 연산자
  • 반복문
  • 자료형
  • 비교 연산자
  • 비트 연산자
  • 참조 자료형
  • switch
  • 배열생성
  • 논리 연산자
  • https

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dackyy

대기의 연대기

코딩테스트

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

2022. 7. 23. 19:04
반응형

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<Integer, Integer> map = new HashMap<Integer, Integer>();

        Scanner sc = new Scanner(System.in);

        System.out.print("정수를 입력하세요 : ");
        int x = sc.nextInt();
        
        System.out.println(x + "의 팩토리얼은 "+ factorialMemoization(x, map)+"입니다");
        System.out.println(x + "의 팩토리얼은 "+ factorial(x)+"입니다");

    }
    static int factorialMemoization(int num, HashMap map){

        if(map.containsKey(num)){
            return (int) map.get(num);
        }else{

            if(num > 0){
                int temp = num * factorial(num - 1);
                map.put(num, temp);
                return temp;
            }else{
                return 1;
            }
        }
    }
}

 

반응형

'코딩테스트' 카테고리의 다른 글

[Python] 코딩도장 23.7 지뢰찾기  (0) 2022.07.27
[python] 백준 알고리즘 2525 오븐 시계  (0) 2022.07.25
[JAVA] 피보나치 수열 구하기 (재귀, 메모화)  (0) 2022.07.23
[JAVA] 재귀함수 메모화  (0) 2022.07.23
[JAVA] 최대공약수 찾기  (0) 2022.07.23
    '코딩테스트' 카테고리의 다른 글
    • [Python] 코딩도장 23.7 지뢰찾기
    • [python] 백준 알고리즘 2525 오븐 시계
    • [JAVA] 피보나치 수열 구하기 (재귀, 메모화)
    • [JAVA] 재귀함수 메모화
    dackyy
    dackyy

    티스토리툴바