본문 바로가기
알고리즘

C++ 지뢰찾기

by Chars4785 2018. 12. 28.

지뢰를 찾고 


1. N,M 행렬 값 주고

2. col, row 위치를 주고 

해당 위치에 지뢰가 있으면 "game over"

없다면 상하좌우 대각선 위치 확인해서 총 지뢰개수 출력


입력


9 8

4 5

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 0 0 1 0 0

0 0 0 1 0 1 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0


출력


4


#include <iostream>
#include <vector>

using namespace std;

int plane[100][100];

int dx[8] ={0,-1,-1,-1,0,1,1,1};
int dy[8] ={1,1,0,-1,-1,-1,0,1};

int main() {

int sum=0;

int planeCol,planeRow;
cin>>planeCol >>planeRow;

int col,row;

cin >>col >>row;
col--;
row--;

for(int i=0;i<planeCol;i++)
for(int j=0;j<planeRow;j++)
cin >> plane[i][j];

if(plane[col][row]==1)
{
cout<<"game over";
}else{

for(int i=0;i<8;i++)
{

sum += plane[col+dx[i]][row+dy[i]];

}
cout<<sum;
}
return 0;
}



상하 좌우를 확인할때 좋은 방법

상대 위치 배열을 사용해서 배열로 돌리는 방법이 있다. !!!


int dx[8] ={0,-1,-1,-1,0,1,1,1};
int dy[8] ={1,1,0,-1,-1,-1,0,1};


for(int i=0;i<8;i++)
{

sum += plane[col+dx[i]][row+dy[i]];

}


'알고리즘' 카테고리의 다른 글

C++ 피라미드  (0) 2019.01.07
C++ 반장 선거  (0) 2019.01.04
C++ 상자 색  (0) 2018.12.28
C++ 삽입정렬, 선택정렬, 버블 정렬  (0) 2018.12.27
C++ 유클리드 호제법  (0) 2018.12.27

댓글