#include<stdio.h>
#include<stdlib.h>
int main()
{
int length, width;//세로, 가로
int x, y, direction;//방향은 0:북, 1:동, 2:남, 3:서
int** map;// 세로 가로, 0육지 1바다
scanf("%d %d", &length, &width);
map = (int**)malloc(sizeof(int*) * (length));
//int move[4][2] = {{0,-1}, {1,0}, {0,1}, {-1,0}};//북, 동, 남 ,서
int move[4][2] = { {0,1}, {-1,0} ,{0,-1} ,{1,0} };//북,서,남,동
scanf("%d %d %d ", &x, &y, &direction);
for (int i = 0; i < length; i++)
{
map[i] = (int*)malloc(sizeof(int) * width);
for (int j = 0; j < width; j++)
{
scanf("%d", &map[i][j]);
}
}
//for (int i = 0; i < length; i++)
//{
// for (int j = 0; j < width; j++)
// {
// printf("map[%d][%d]%d\n", i, j, map[i][j]);
// }
// printf("\n");
//}
//int check = 1;
int count = 1;
while (1)
{
for (int k = 0; k < 4; k++)
{
map[x][y] = 1;
//if(check)
// k = direction;
//printf("zzzzzzzzzz%d %d\n", move[k][0], move[k][1]);
//printf("aaaaaaaaaaaa:%d\n", map[x + move[k][0]][y + move[k][1]]);
if (map[x + move[k][0]][y + move[k][1]] == 0)
{
count++;
x += move[k][0];
y += move[k][1];
break;
}
if (k == 3)
{
printf("count :%d\n", count);
return;
}
//check = 0;
}
printf("%d ,%d\n", x, y);
}
}
갔던 곳을 또 가지 않는 부분을 1로 채우는 부분이 인상적이었고 살짝 헷갈린게 처음에 거쳤던 길을 1이라고 생각을 안 했어서 틀렸었다.
728x90
'알고리즘 기초시절' 카테고리의 다른 글
이코테 구현알고리즘 예제 1번 상하좌우 -방향벡터 (C언어) (2) | 2023.01.08 |
---|---|
백준 왕실의 나이트(C) 수학적 풀이, 완전 탐색적 풀 (0) | 2023.01.08 |
[백준 BOJ 10816번] 숫자 카드 2 (C++ ) (0) | 2023.01.08 |
백준 c++백준 1181번 단어정렬 (부제 :c++의 말도 안되는 편리함) (0) | 2023.01.05 |
백준 c++[백준 BOJ 10816번] 숫자 카드 2 (C++ ) (0) | 2023.01.05 |