본문 바로가기

재귀6

[백준/C,C++] 10993번: 별 찍기 - 18 https://www.acmicpc.net/problem/10993 10993번: 별 찍기 - 18 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 풀이 위 그림처럼 별을 찍으면 되는 문제입니다. 재귀를 이용해 별을 찍는 문제들에서 배열에 값을 저장한 후 찍는 것이 아닌 해당 좌표에 '*' 이 출력돼야 하는지 공백이 출력돼야 하는지 바로 판단하여 출력하는 식으로 함수를 구현하려고 했고, 이번 문제 또한 배열을 쓰지 않는 방법으로 해결하였습니다. 가장 큰 삼각형 단계부터 가장 작은 삼각형 단계까지 재귀 호출합니다. 해당 좌표가 현재 삼각형 단계에서 '*' 로 출력될 자리인지 판단하고 아니라면 다음으로 작은 삼각형 단계로 재귀 호출하는데, 1 크기의 삼각형이 될 때까지 '*'.. 2021. 5. 18.
[백준/C,C++] 2448번: 별 찍기 - 11 https://www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 풀이 위 그림처럼 프렉탈 형태의 별을 찍어야 하는 문제입니다. 처음 해당 문제를 접하고 2가지 해결법이 생각났습니다. 2차원 bool 배열을 만들어 해당 좌표에 '*' 혹은 공백인지 판단하여 저장한 후 배열을 돌며 별을 찍어내는 방법과 좌표가 주어지면 해당 좌표에 찍어야 할 문자를 판단하여 바로 출력하는 방법입니다. 결과적으론 후자의 방법을 택하여 문제를 해결하게 되었습니다. 먼저 제가 생각한 방법은 이렇습니다. 좌표가 주어지고 해당 좌표가 현재 삼.. 2021. 5. 18.
[백준/C,C++] 1780번: 종이의 개수 www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. www.acmicpc.net 쿼드트리 문제인데 4(2x2)개로 분할하는게 아닌, 9(3x3)개로 분할하는 문제입니다. #include #include using namespace std; const int MAX = 2187; int n; int paper[MAX][MAX]; int cnt[3]; void dv(int x, int y, int len) { if (len == 0) return; int value[3] = { 0,.. 2021. 3. 19.
[백준/C,C++] 1992번: 쿼드트리 www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net hackids.tistory.com/49 [백준/C,C++] 2630번: 색종이 만들기 www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터.. hackids.tistory.com 2630번: 색종이 만.. 2021. 3. 17.