728x90
1. 문제
https://codeup.kr/problem.php?id=2610
[출처 : 코드업(https://codeup.kr/)]
이번 문제는 그림판의 색 채우기 기능을 간략하게 구현해보는 문제입니다.
이번 문제 또한 재귀 함수를 사용하면 쉽게 해결할 수 있습니다.
2. 풀이방법
STEP 1. 주어진 좌표(x, y)부터 상,하,좌,우를 확인하여 '-'이면 '*'로 색칠한다.
3. 해답
#include <stdio.h>
void paint(char Arr[10][11], int x, int y) {
if (x < 0 || x > 9) return 0;
if (y < 0 || y > 9) return 0;
if (Arr[x][y] == '*') return 0;
Arr[x][y] = '*';
paint(Arr, x - 1, y); // 좌
paint(Arr, x + 1, y); // 우
paint(Arr, x, y - 1); // 상
paint(Arr, x, y + 1); // 하
}
int main() {
int x, y;
char Arr[10][11];
for (int i = 0; i < 10; i++) {
scanf("%s", Arr[i]);
}
scanf("%d %d", &x, &y);
paint(Arr, y, x);
for (int i = 0; i < 10; i++) {
printf("%s\n", Arr[i]);
}
return 0;
}
'프로그래밍 > CodeUp' 카테고리의 다른 글
CodeUp[Q_2629] : 광역시 (0) | 2020.04.08 |
---|---|
CodeUp[Q_2628] : 케익 자르기 (0) | 2020.04.07 |
CodeUp[Q_2607] : 쌍둥이 소수 (0) | 2020.04.04 |
CodeUp[Q_2605] : 캔디팡 (0) | 2020.04.03 |
CodeUp[Q_2604] : 실수를 기약 분수로 변환 (0) | 2020.04.02 |