코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67
문제
https://www.acmicpc.net/problem/17478
[나의 풀이]
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
static BufferedWriter recur(int n, int m, BufferedWriter bw) throws IOException {
bw.write("_".repeat(4 * (m - n)) + "\"재귀함수가 뭔가요?\"\n");
if (n == 0) {
bw.write("_".repeat(4 * (m - n)) + "\"재귀함수는 자기 자신을 호출하는 함수라네\"\n");
} else {
bw.write("_".repeat(4 * (m - n)) + "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n");
bw.write("_".repeat(4 * (m - n)) + "마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n");
bw.write("_".repeat(4 * (m - n)) + "그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"\n");
recur(n - 1, m, bw);
}
bw.write("_".repeat(4 * (m - n)) + "라고 답변하였지.\n");
return bw;
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int m = n;
bw.write("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n");
bw = recur(n, m, bw);
bw.flush();
}
}
재귀함수의 개념을 되짚어 볼 수 있는 문제였습니다. 재귀함수를 돌리며 bw에 문자열을 적절히 추가하는 것이 관건이였습니다. 또한 repeat(n) 함수를 사용하여 문자열 간단하게 반복할 수 있었습니다.🍎🍎🍎
감사합니다!🐥🐥🐥