분류 전체보기(97)
-
[백준/C++] 1992번 쿼드트리
문제: www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제풀이 재귀 문제 코드 #include using namespace std; string board[64]; void func(int x, int y, int n){ bool flag = true; for(int i=x; i
2021.04.29 -
[백준/C++] 2448번 별 찍기 - 11
문제: www.acmicpc.net/problem/2448 문제풀이 재귀를 문제 각 삼각형의 위 쪽 꼭짓점을 기준으로 재귀를 진행했다. n의 키기가 3이 되면 별을 찍는다. 코드 #include using namespace std; char board[3080][6160]; void func(int x, int y, int n){ if(n==3){ board[x][y] = '*'; board[x+1][y-1] = '*'; board[x+1][y+1] = '*'; board[x+2][y-2] = '*'; board[x+2][y-1] = '*'; board[x+2][y] = '*'; board[x+2][y+1] = '*'; board[x+2][y+2] = '*'; } else{ func(x,y,n/2); f..
2021.04.28 -
[백준/C++] 17478번 재귀함수가 뭔가요?
문제: www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 문제풀이 재귀 문제 출력 예시를 읽고 재귀 함수를 구현하는 문제였다. 코드 #include using namespace std; void func(int i, string underBar){ cout
2021.04.27 -
[백준/C++] 2447번 별 찍기 - 10
문제: www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 문제풀이 별을 board에 모두 찍어두고 재귀를 이용하여 가운데를 지우는 방식으로 문제를 풀었다. 코드 #include using namespace std; char board[6566][6566]; void func(int x, int y, int n){ if(n==0) return; n /= 3; for(int i=x+n; in; for(int i=0; i
2021.04.27 -
[백준/C++] 1074번 Z
문제: www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서 www.acmicpc.net 문제풀이 재귀 문제이다. 코드 #include using namespace std; int func(int x, int y, int k){ if(k==0) return 0; int half = 1= half && y < half) return 2*half*half + func(x-half,y,k-1); else return 3*half*half + func(x-half,y-half,k-1); } ..
2021.04.09 -
[백준/C++] 11729 하노이 탑 이동 순서
문제: www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제풀이 대표적인 재귀 문제인 하노이탑 코드 #include using namespace std; void func(int a, int b, int k){ if(k==0) return; func(a, 6-a-b, k-1); cout
2021.04.07