백준 문제풀이

17478. 재귀함수가 뭔가요? (자바, Java)

뮤츠 2022. 10. 1. 22:37

원래 백준 단계별 풀이-재귀 파트에 있었는데, 개편되면서 사라져버렸다. 그래도 푼게 아까우니까...

텍스트는 복붙하는게 정신건강상 좋다. 직접 쳤다가 오타났는지 안되길래, 복붙해서 쓸모없는 부분 쳐내고 완성시키니까 잘 됐다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	private static int n;

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		n = Integer.parseInt(br.readLine());
		System.out.println("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.");
		jh(n);
		
		
		

	}
	
	public static void jh(int k) {
		
		String str = "____";
		
		if (k == 0) {
			
			System.out.println(str.repeat(n-k) + "\"재귀함수가 뭔가요?\"");
			System.out.println(str.repeat(n-k) + "\"재귀함수는 자기 자신을 호출하는 함수라네\"");
			System.out.println(str.repeat(n-k) + "라고 답변하였지.");
			
		}
		
		if (k > 0) {
			

		
		System.out.println(str.repeat(n-k) + "\"재귀함수가 뭔가요?\"");
		System.out.println(str.repeat(n-k) + "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.");
		System.out.println(str.repeat(n-k) + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.");
		System.out.println(str.repeat(n-k) + "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"");
		jh(k-1);
		System.out.println(str.repeat(n-k) + "라고 답변하였지.");
		
		}
		
	}

}