[백준,BOJ 10872] 팩토리얼(JAVA 구현)

2020. 10. 9. 13:41·CodingTest/백준 온라인 저지(BOJ)
반응형

-해법

import java.util.Scanner;

public class Main{
	
	static int factorial(int n) {
		if(n == 0) return 1; // n이 0이면 1이므로 리턴하여 무한 루프 방지
		else { // 나머지의 경우
			return n*factorial(n-1); // 자신 * 자신-1의 팩토리얼 값을 지속적으로 호출, 리턴해준다.			
		}
	}
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        
        int n = in.nextInt();
        
        System.out.println(factorial(n)); // 출력!
        
    }
}

재귀 알고리즘의 첫 문제이자 대표 문제라 할 수 있는 팩토리얼이다. 재귀는 항상 팩토리얼을 풀 땐 쉬운데... 다른 재귀 문제는 머리가 터져버릴 것 같다....ㅋㅋㅋㅋ 4를 입력했다 가정한 진행과정은.

 

  1. factorial(4)의 호출 시 4 * factorial(3)을 호출

  2. factorial(3)호출 시 3 * factorial(2)를 호출

  3. factorial(2)호출 시 2 * factorial(1)을 호출

  4. factorial(1)호출 시 1 * factorial(0)을 호출

  5. factorial(0)은 종료 조건으로 1을 반환

  4. 다시 거꾸로 올라가면서 factorial(1) == 1을 반환

  3. factorial(2) == 2를 반환

  2. factorial(3) == 6을 반환

  1. factorial(4) == 24를 반환 후 모든 호출 종료.

  0. 결과 24 출력.

 

  재귀 호출은 결국 맨 아래서 부터 올라오는 느낌이라고 생각한다..

저작자표시 (새창열림)
'CodingTest/백준 온라인 저지(BOJ)' 카테고리의 다른 글
  • [백준,BOJ 2447] 별 찍기 - 10(JAVA 구현, 재풀이)
  • [백준,BOJ 10870] 피보나치 수 5(JAVA 구현)
  • [백준,BOJ 1316] 그룹 단어 체커(JAVA 구현)
  • [백준,BOJ 2941] 크로아티아 알파벳(JAVA 구현)
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    medium
    BOJ
    Easy
    TypeScript
    백준1260
    leetcode 2236
    백준2751
    프로그래머스
    백준7576자바
    알고리즘
    백준7576
    백준1427
    next 14
    boj1427
    meidum
    component-scan
    Java
    자바
    백준
    boj2108
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[백준,BOJ 10872] 팩토리얼(JAVA 구현)
상단으로

티스토리툴바