재귀함수 5

Code up 4024 호수의 수 구하기

Ex) 주어진 지도를 분석하여 호수의 개수를 구하는 프로그램을 작성하시오. - 다음은 어느 호수 지역의 지도를 간략하게 표현한 것이다. 지도는 'L'또는 '.'으로 이루어 진다. - 'L'이 의미하는 것은 호수 영역이고 '.'은 호수 이외의 영역을 의미한다. - 단, 호수가 상, 하, 좌, 우, 대각선으로 이어진 것은 하나의 호수로 간주한다. L . . . . . . . . L . . . L . . . . . . . L L . L L . . . . . . . . L . . L . . . . . . . . . L . . L . . . . . . . . L . . . . . . L . . . . . . . . . . L . L . . . . . . . . L . L . L . . . . . . . . L ...

Chapter 07. Recursive, Tree, Graph (DFS, BFS 기초)

1. 재귀함수 (스택 프레임) public class Main { public void DFS(int n){ if(n == 0) return; else{ System.out.println(n); DFS(n-1); } } public static void main(String[] args){ Main T = new Main(); T.DFS(5); return ; } } Note) - 실행 결과: 5 4 3 2 1 츨력 2. 이진수 출력 (재귀) import java.util.Scanner; public class Main { public void DFS(int n){ if(n == 0) return; else{ System.out.print(n + " "); DFS(n / 2); } } public sta..

Code up 1929 재귀함수 우박수 (3n+1) (reverse)

Ex) 우박수 문제 역순으로 출력하기 import java.util.Scanner; public class ReverseCollatz { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); Reverse(m); System.out.println(m); } public static void Reverse(int n) { if( n % 2 == 1 ) {//홀수일 때 if(n == 1) return; n = 3 * n + 1; Reverse(n); }else {// 짝수일 때 n = n / 2; Reverse(n); } System.out.println(n); } } Note..

Code up 1928 재귀함수 우박수 문제 (basic)

Ex) 입력되는 수 n에 대해 홀수이면 3n + 1, 짝수이면 n / 2 을 출력하는 과정을 반복한다. (n이 1이 될 때까지 ) package D220315; import java.util.Scanner; public class Collatz { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); CollatzMethod(m); } public static void CollatzMethod(int n) { System.out.println(n); if( n % 2 == 1 ) {//홀수일 때 if(n == 1) return; n = 3 * n + 1; CollatzMet..

Code up 1920 재귀함수를 이용한 2진수 변환

import java.util.Scanner; public class BinanyOperation { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); if(m == 0) { System.out.println(0); }else { BinanyFunc(m); } } public static void BinanyFunc(int n){ if(n == 0) return; else { BinanyFunc(n / 2); System.out.printf("%d", n % 2); } } }