GitHub 자세히보기

재귀함수 3

[백준] 2447번 별찍기10 for JAVA

문제설명 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 제한사항 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 문제풀이 재귀함수 활용 import java.io.BufferedWr..

Algorithm/BOJ 2022.01.01

[백준] 11729번 하노이 탑 이동 순서 for JAVA

문제설명 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다. 아래 그림은 원판이 5개인 경우의 예시이다. 제한사항 입력 첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다. 출력 첫째 줄에 옮긴 횟수 K를 출력한다. 두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수..

Algorithm/BOJ 2022.01.01

[알고리즘 이론] 재귀함수

재귀란? 주어진 문제의 해를 구하기 위해 동일하면서 더 작은 문제의 해를 이용하는 방법 재귀함수 함수 내부에서 직간접으로 자기 자신을 호출하는 함수 '기본 부분(기저조건)+ 유도 부분(실행부분)' 로 구성 함수호출은 프로그램 메모리 구조에서 스택 사용 → 메모리 및 속도에서 성능저하 발생 재귀함수는 반복구조보다 간결하고 이해하기 쉽다. 예시(팩토리얼) 1. 재귀적 표현 기본부분(기저조건) N=1일 때, n ! = n x (n-1)! 2. 재귀함수 코드 int factorial(int n) { if(n

Algorithm/이론 2022.01.01
1