2573 : 빙산 (C++)
2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 좀 코드가 긴 것 같긴하지만 열심히 잘 풀었따! #include #include #include using namespace std; int N, M, years; int map[300][300]; bool visit[300][300]; int dx[4] = {1, -1, 0, 0}; int dy[4] = {0, 0, 1, -1}; queue q; void bfs(int i, int j) { visit[i][j] = true; q.push({i, j}); ..
2021. 2. 18.
7562 : 나이트의 이동 (C++)
7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 간만에 재미있게 푼 BFS문제이다. 나이트가 시작하는 위치를 큐에 넣고 도착하려는 위치까지 움직이는 수를 칸에 더하며 도착할 때까지 계속 BFS를 수행하면 된다. #include #include #include using namespace std; int map[300][300]; bool visit[300][300]; int l; int X, Y; int dx[8] = {2, 2, 1, 1, -1, -1, -2, -2}; int dy[8] = {1, -1, 2,..
2021. 2. 17.
2206 : 벽 부수고 이동하기 (C++)
2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 푸는데 오랜 시간이 걸렸던 문제. 결국 남의 코드를 보고 생각하며 다시 풀었다. 너무 어려오~ 더 많이 연습하고 문제 풀어서 열심히하자 #include #include #include #include using namespace std; #define MAX 1001 int map[MAX][MAX]; int visit[MAX][MAX][2]; int dx[4] = {1, -1, 0, 0}; int dy[4] = {0, 0, 1, -1};..
2021. 2. 9.
1012 : 유기농 배추 (C++)
1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 테스트 케이스가 여러개 존재 할 수 있으므로 배열 초기화를 반드시 해주어야한다. BFS방식으로 풀었다. #include #include using namespace std; #define MAX 50 int M, N, K; int map[MAX][MAX]; bool visit[MAX][MAX]; int dx[4] = {1, -1, 0, 0}; int dy[4] = {0, 0, 1, -1}; void bfs(int x, int y) { queue q; q.push({x, y}..
2021. 2. 4.