목록백준 - JAVA/재귀 (5)
알고리즘
1번 → 이 또한 처음 걸음을 떼기 어려워, 아래 자료를 보고 이해한 후 코드를 짰다. 매우 자세히 설명을 해주셔서 초보자도 이해하는 데 무리가 없으리라 생각한다. https://shoark7.github.io/programming/algorithm/tower-of-hanoi '하노이의 탑' 이해하기 '하노이의 탑' 문제를 이해하고 문제 해결을 위한 핵심 통찰을 살핀 뒤 코드로 작성합니다. 이후 탑의 개수에 따른 총 이동 횟수를 구하는 일반항까지 수학적으로 유도합니다. shoark7.github.io import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { pu..
1번 → 어려웠다. 3*3 패턴을 만든 뒤 규칙에 따라 StringBuilder에 append 하려고 했는데, 개행 때문에 옆에 나란히 붙일 수는 없었다. 1시간동안 고민했지만, 해결 방법이 떠오르지 않아 아래 자료를 참고했다. - 규칙(5번째 인덱스마다 공백이다.) 을 찾고 function(탐색 시작 행 : row, 탐색 시작 열 : column, 탐색할 범위 : N, 공백 판단 T/F : false) 을 만드는 문제이다. 재귀를 풀 때, 함수로 만들 규칙을 정확히 찾고 그 규칙을 구현하는 연습이 필요할 것 같다. https://st-lab.tistory.com/95 [백준] 2447번 : 별 찍기 - 10 - JAVA [자바] st-lab.tistory.com import java.io.Buffere..
1번 → 문자열의 Palindrome을 체크 값, 재귀 함수의 실행 횟수를 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { static int recursion_count; //recursion 함수 호출 횟수를 구하기 위한 변수이다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다. int T = Int..
1번 → 재귀를 이용한 피보나치 수 계산 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다. int N = Integer.parseInt(br.readLine()); //N번째 피보나치 수를 계산하기 위한 N을 입력받는다. int fibo = solve(N); //N번째..
1번 → 비재귀 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다. int N = Integer.parseInt(br.readLine()); //N! 계산을 위한 N을 입력받는다. int fact; //팩토리얼 변수 fact = 1; for(int i=1;i0) //N이..