반응형
#include<iostream>
using namespace std;
void fillup(int arr[4][4], int y, int x, int now) {
int divide[4][2] = {
{-1,0},
{0,-1}, {0,1},
{1,0},
};
int dy, dx;
for (int i = 0;i < 4;i++) {
dy = y + divide[i][0];
dx = x + divide[i][1];
if (dy >= 0 && dx >= 0 && dy < 4 && dx < 4) {
if (arr[dy][dx] == 0) {
//cout << dy << dx << endl;
arr[dy][dx] = now + 1;
}
}
}
}
int main() {
int y, x;
cin >> y >> x;
int arr[4][4] = { 0 };
arr[y][x] = 1;
int now = 1;
while (1) {
int cnt = 0;
for (int i = 0; i < 4;i++) {
for (int j = 0; j < 4;j++) {
if (arr[i][j] == now) {
cnt += 1;
fillup(arr, i, j, now);
}
}
}
//cout << cnt << endl;
if (cnt == 0) {
break;
}
now++;
//cout << now << endl;
}
for (int i = 0; i < 4;i++) {
for (int j = 0; j < 4;j++) {
cout << arr[i][j] << " ";
}cout << endl;
}
}
어휴 y x i j 헷갈려서 계속 에러남
+ dy dx 의 범위는 바깥으로 나가면 안됨! 에러난당
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
토기 번식 문제 queue로 풀어보기 (0) | 2020.04.30 |
---|---|
간단한 dfs 구현 (0) | 2020.04.30 |
간단한bfs구현 (0) | 2020.04.30 |
링크드리스트에 DFS 넣고 프린트하기 (0) | 2020.04.29 |
테트리스처럼 줄 터트리고 위에껄 내려오기 개 쉬운 버전 (0) | 2020.04.18 |
max 두개 연달아 구하기 -- max값 0만들어서 구함 (0) | 2020.04.14 |
문자열에서 숫자 찾기 - 링크드리스트 (0) | 2020.04.12 |
입체기동장치 문제 codeup (0) | 2020.04.11 |