몽셀통통의 블로그
문제https://www.acmicpc.net/problem/1600 풀이가중치 없는 최소값을 구하는 문제이므로 bfs 사용현재 위치의 x,y값과 말처럼 건넌 횟수를 담는 큐까지 총 3개의 큐 사용한번 큐를 담을때 상하좌우 4번과 말이 갈 수 있는 위치 8개를 한번에 담는다 자꾸 틀려서 고생했는데 visitd[MAX][MAX][2]로 해주어서 말로 지나가지 않았을때와 말로 지났을때 이렇게 체크를 해주었다하지만 다음과 같은 케이스에서 정확한 답을 낼 수 없다 20 1 1 1 10 0 0 0 01 0 0 1 01 1 1 1 0 20 0 1 1 10 0 0 0 01 0 0 1 01 1 1 1 0 20 1 1 1 10 0 0 0 01 0 0 1 01 1 1 1 0 문제가 첫번째처럼 주어졌을 때 왼쪽 상단 검은색..
문제https://www.acmicpc.net/problem/1938 풀이통나무가 원하는 자리에 위치할때까지 움직이는 최소 횟수에 대한 문제이므로 bfs 사용일단 x위치와 y위치, 현재 통나무 방향을 담는 큐를 세개 만들었다.중요하게 볼것은 통나무는 세칸을 차지하지만 중앙에 있는게 가장 중요하므로 중앙값만 담았다. 1. 현재 x와 y, 통나무 방향을 큐에 담는다2. 4방향으로 range 체크만 해주면서 '1'있는 칸을 제외하고 담는다3. turn하는 것도 하나로 카운트 해주므로 잊지 않고 큐에 넣어준다 첫번째 풀었을때는 문제를 제대로 안보고 풀어서 틀렸다. 케이스b와 케이스d를 보면 turn할 경우 3X3크기에서 1이 존재하지 않아야 한다.이걸 빼먹으면 바로 틀려버린다 두번째 풀었을때는 시간 초과때문에 ..
문제https://www.acmicpc.net/problem/145023 풀이dfs로 풀었는데 bfs도 가능할것 같다dfs로 3개의 벽을 차례로 놓은 후 바이러스 퍼지는 것을 dfs로 다시 구현하여 남은 0이 몇개인지 구하면 된다 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include using namespace std; int N, M,ans;int arr[9][9];int visit[9][9];int visit2[9][9];int dir[4][2] = { {-1,0},{0,1},{1,0},{0,-1..