본문 바로가기

백준 알고리즘 단계별 풀이 (문제 수)/재귀 함수 (5)4

[C++] 별 찍기 - 10 : 2447번 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 해석 재귀적으로 생각이 안나서 혼자 해결하지 못했다. [백준 / BOJ] - 2447번 별 찍기 -10 C++ 풀이 :: Just Give Me The Code (tistory.com) [백준 / BOJ] - 2447번 별 찍기 -10 C++ 풀이 백준 .. 2022. 7. 12.
[C++] 재귀함수가 뭔가요? : 17478번 문제 떠나기 전까지도 제자들을 생각하셨던 JH 교수님은 재귀함수가 무엇인지 물어보는 학생들을 위한 작은 선물로 자동 응답 챗봇을 준비하기로 했다. JH 교수님이 만들 챗봇의 응답을 출력하는 프로그램을 만들어보자. 예제 입력 2 예제 출력 어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다. "재귀함수가 뭔가요?" "잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. 마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지. 그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어." ____"재귀함수가 뭔가요?" ____"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어. ___.. 2022. 7. 7.
[C++] 피보나치 수 5 : 10870번 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 예제 입력 10 예제 출력 55 풀이 #include using namespace std; int Fibor(int N) { if (N == 0) return 0; // 0 과 1은 예외 else if (N == 1) re.. 2022. 7. 7.
[C++] 팩토리얼 : 10872번 (런타임 에러 해결) 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 해석 팩토리얼이란 ! 기호로 나타내며, 예를 들어 4! 은 4 * 3 * 2 * 1 이다. N! 을 재귀함수로 프로그램을 구현하면 된다. 풀이 #include using namespace std; int Factorial(int N) { if (N == 0 || N == 1) { return 1; // 0과 1은 1반환 } return N *= Factorial(N - 1); // 1을 뺀 수를 재귀 } int main() { int N; // 정수 cin >> N; cout 2022. 7. 6.