-
모각코PS / 백준 17478 재귀함수가 뭔가요?PS 2022. 5. 25. 16:09
모각코 PS스터디
백준 문제들을 보다보면 가끔가다 재미용 문제(?)가 있죠. 이 문제도 약간 그런 느낌입니다. 부트캠프 커리큘럼이 재귀를 배울 차례라, 알고리즘을 정해주신 대장님께서 넣어주신 것 같아요. 웃으면서 재밌게 풀었습니다. ㅎㅎ
문제와 풀이
문제 링크 : 백준 17478번 - 재귀함수가 뭔가요?
👇펼쳐서 코드와 해설 읽기
설명할 로직이랄게 없죠?...ㅎㅎ
더 정리할 수 있을 것 같은데 재귀 은근 머리아파서...
대강 풀고 끝내자! 하고 대강 풀어버렸습니다. (...)import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); scanner.close(); String intro = "어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.\n"; System.out.println(intro + callChatbot(input, 0).toString()); } private static StringBuilder callChatbot(int input, int depth) { StringBuilder tab = new StringBuilder(); for (int i = 0; i < depth; i++) { tab.append("____"); } if (depth == input) { return new StringBuilder(tab).append("\"재귀함수가 뭔가요?\"\n") .append(tab).append("\"재귀함수는 자기 자신을 호출하는 함수라네\"\n") .append(tab).append("라고 답변하였지.\n"); } StringBuilder sb = new StringBuilder(); return sb.append(tab).append("\"재귀함수가 뭔가요?\"\n") .append(tab).append("\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.\n") .append(tab).append("마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.\n") .append(tab).append("그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어.\"\n") .append(callChatbot(input, depth + 1)) .append(tab).append("라고 답변하였지.\n"); } }
마무리
사실 엄청 전통적인 문제죠. ㅎㅎ
재귀야 더러웠고 다시는 보지 말자!
라고.. 하고싶지만...
이제 꼬리재귀 공부하러....'PS' 카테고리의 다른 글
모각코PS / 백준 1260 DFS와 BFS (0) 2022.06.11 동전 교환 알고리즘: 주어진 화폐로 특정 금액 만드는 경우의 수 구하기 (0) 2022.06.02 모각코PS / 프로그래머스 Lv2 소수 찾기 (2) 2022.05.28 모각코 PS / 백준 1475 방 번호 (0) 2022.05.25 PS미세먼지 팁: 정수 자릿수 구할 때 Math.log10() + 1? (2) 2022.05.24 모각코 PS / 카카오 2020 신입 블라인드 채용 1차 문자열 압축 (0) 2022.05.21