[백준 7569] 토마토
7569번: 토마토 (acmicpc.net) 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 배운것 queue Q; 정답 풀이 #include using namespace std; int dx[6] = {0, 0, 1, -1, 0, 0}; int dy[6] = {1, -1, 0, 0, 0, 0}; int dz[6] = {0, 0, 0, 0, 1, -1}; int board[103][103][103]; int dist[103][103][103]; queue Q; int m, n, h; i..
2022. 8. 30.
[백준 10026] 적록색약
10026번: 적록색약 (acmicpc.net) 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 내 코드 #include using namespace std; char board[101][101]; bool vis[101][101]; int n; int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,1,0,-1 }; void bfs(int i, int j) { queue q; q.push({i,j}); vis[i][j]=1; while(!q.empty()) { int x=q.fron..
2022. 8. 30.
[백준 1012] 유기농 배추
1012번: 유기농 배추 (acmicpc.net) 배운것 - 테스트케이스 여러번이니까 같이 쓰는 board, vis 행렬들은 초기화해주기 내 코드 #include using namespace std; int board[51][51]; bool vis[51][51]; int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,1,0,-1 }; int m, n, k; queue q; void bfs(int i, int j) { vis[i][j]=true; q.push({i,j}); while(!q.empty()) { int x=q.front().first; int y=q.front().second; q.pop(); for(int i=0;i> n >> k; int x, y; for (int i..
2022. 8. 30.
[실전 알고리즘] BFS
BFS? 다차원 배열에서 각 칸을 방문할 때 너비를 우선으로 방문하는 알고리즘 예시 1. 시작하는 칸을 큐에 넣고 방문했다는 표시를 남김 2. 큐가 빌 때까지 큐에서 원소를 꺼내고 상하좌우로 인접한 칸에 대해 처음으로 방문했다면 해당 칸을 큐에 삽입하는 것을 반복 #include using namespace std; #define X first #define Y second // pair에서 first, second를 줄여서 쓰기 위해서 사용 int board[502][502] = {{1,1,1,0,1,0,0,0,0,0}, {1,0,0,0,1,0,0,0,0,0}, {1,1,1,0,1,0,0,0,0,0}, {1,1,0,0,1,0,0,0,0,0}, {0,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0..
2022. 8. 30.