음료수 얼려 먹기
전형적인 DFS/BFS문제이다. 그냥 map을 돌면서 연결된 영역의 개수를 구해주면 되는 문제이다. DFS로 풀수도 있고 BFS로도 풀 수 있다. 연습을 위해 두가지 코드 모두 작성하였다. - BFS코드 #include #include #include #include using namespace std; int n,m,cnt; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; int map[1001][1001]; int visited[1001][1001]; queue q; void bfs(int x,int y){ q.push(make_pair(x,y)); visited[x][y]=1; while(!q.empty()){ x=q.front().first; y=q.front().sec..
게임 개발
#include #include #include using namespace std; bool flag=false; int n,m; int nowx,nowy; int dir; int cnt=1; int dx[]={0,1,0,-1}; int dy[]={-1,0,1,0}; int map[51][51]; int visited[51][51]; void move(int x,int y){ visited[x][y]=1; while(true){ flag=false; for(int k=0;k>nowx>>nowy>>dir; for(int i=0;imap[i][j]; } } move(nowx,nowy); cout n >> m; // 현재 캐릭터의 X 좌표, Y 좌표, 방향을 입력받기 cin >> x >> y >> direc..
왕실의 나이트
#include #include #include #include using namespace std; string input; int row,col; int dx[]={1,2,2,1,-1,-2,-2,-1}; int dy[]={2,1,-1,-2,-2,-1,1,2}; int main() { //freopen("input.txt","r",stdin); cin>>input; col=input[1]-'0'; row=input[0]-'a'+1; int cnt=0; for(int i=0;i