[C++] 2206 : 벽 부수고 이동하기
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net #include using namespace std; int N, M; int MAP[1111][1111]; int visitMAP[1111][1111][2]; int dx[] = {0, 0, -1, 1}; int dy[] = {-1, 1, 0, 0}; int main(void) { cin >> N >> M; for (int i = 1; i M; for (int i = 1..
[C++] 1238 : 파티
https://www.acmicpc.net/problem/1238 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net #include using namespace std; #define INF 1123456789 int n, m, x; vector v[1111]; // v[시작점]={비용,끝점} int d[1111]; int ans; int fun(int start, int end) { fill(d, d + n + 1, INF); priority_queue pq; pq.push({0..
[C++] 2096 : 내려가기
https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net #include using namespace std; int n; vector v[3]; int dmax[3], dmin[3]; int pmax[3], pmin[3]; // 이전 3개 int main() { cin >> n; int input; for (int i = 0; i > input; v[j].push_back(input..