▽문제 바로가기
https://codeup.kr/problem.php?id=2610
입력
10∗10 크기의 그림과 색칠할 좌표의 x,y 값이 차례로 입력된다.
_ 는 색칠되지 않은 부분이고 * 는 색칠된 부분이다.
출력
색 채우기를 한 결과를 출력한다.
문제 풀이
배열 범위를 제외하면 크게 신경 쓸 부분이 없었습니다. x, y는 각각 열과 행입니다. 각 배열은 [0]부터 [9]까지 입니다.
#include <stdio.h>
//using namespace std;
char arr[11][11];
void paint(int row, int col){
//범위밖이면 리턴
if(row==-1||col==-1||row==10||col==10) return;
//색칠된 테두리라면 리턴
if(arr[row][col]=='*') return;
//색칠안된 부분이라면 색칠
if(arr[row][col]=='_') arr[row][col] = '*';
//상, 하, 좌, 우 로 탐색
paint(row-1, col);
paint(row+1, col);
paint(row, col-1);
paint(row, col+1);
}
int main(){
for(int i=0;i<10;i++){
scanf("%s", arr[i]);
}
int x, y;
scanf("%d%d", &x, &y);
paint(y, x);
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
printf("%c", arr[i][j]);
}
printf("\n");
}
}
'알고리즘' 카테고리의 다른 글
[C/C++] 코드업(codeup) 3500번 지뢰 찾기 2 (0) | 2020.02.22 |
---|---|
[C/C++] 코드업(codeup) 3212번 위상 정렬(topological sort) (0) | 2020.02.21 |
[C/C++] 코드업(codeup) 2605번 캔디팡 (0) | 2020.02.19 |
[C/C++] 코드업(codeup) 4713번 공주님의 정원 (0) | 2020.02.18 |
[C/C++] 코드업(codeup) 4040번 펜션 (0) | 2020.02.17 |