알고리즘/풀이 51

백준 2447번 - 별 찍기 - 10 (C++)

[문제] https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net [풀이] 재귀 함수로 푸는 문제이다. (0,0) 좌표에서 시작하여, N/3씩 이동한 뒤 좌표를 다시 start 함수에 넣는다. 빈 칸을 만들기 위해서 i%N/(N/3), j%N/(N/3)이 1인 경우가 빈칸으로 만들었다. [코드] #include using namespace std; char map2[10000][10000]; void draw(int x, in..

알고리즘/풀이 2022.01.02

1992번 - 쿼드트리 (C++)

[문제] https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net [풀이] 이전 문제와 똑같이 재귀함수로 푸는 문제이다. vector를 이용하여 쿼드트리를 저장하였음. test함수에서 모두 0, 1로 되어있는지 판단하고, 아니면 false, 맞으면 true 값을 반환하였다. true인 경우 1 혹은 0을 벡터에 넣어 쿼드 트리 완성, 괄호는 재귀함수에 넣을때 같이 벡터에 넣어주었고 숫자 사이에 괄호를 없애서 문제를 풀었다. [코드] #inc..

알고리즘/풀이 2021.12.30

2630번 - 색종이 만들기 (C++)

[문제] https://www.acmicpc.net/problem/2630 [해결 방법] 우선 void check(int x, int y, int N) 함수를 정의하여, 재귀 함수를 통해 풀려고 하였다. (x, y는 판 내 좌표, N은 전체 종이의 크기) 첫번째로, 일단 (0,0) 좌표와 사용자에게 입력받은 N(그림에서는 8)을 check 함수에 인자로 전달하였다. 그리고 for문을 통해서 check(x,y,N/2)를 통해 (그림 내에서) 8 X 8 -> 4 X 4 -> 2 X 2 -> 1 X 1 이런식으로 분할하려고 하였다. bool test(int x, int y, int N) 은 주어진 좌표에서 (x,y) ~(가로 + N, 세로 + N) 만큼 범위에서 같은 수 인지 아닌지 파악하는 함수이다. 만약 ..

알고리즘/풀이 2021.12.29