Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- GitHub
- Priority Queue
- BFS
- Data Structure
- Trie
- django
- Algorithm
- Back tracking
- SWEA
- programmers
- 코딩테스트
- aws
- SQL
- Vue.js
- 알고리즘
- Bruth Force
- Linked list
- 시뮬레이션
- Python
- 코테
- spring boot
- CSV
- 모의SW역량테스트
- JavaScript
- gpdb
- 구현
- 알고리듬
- hash table
- DFS
- boj
Archives
- Today
- Total
hotamul의 개발 이야기
[Algorithm][C++] SWEA 1249. [S/W 문제해결 응용] 보급로 문제 본문
myt-algorithm-practice/Samsung SW Certi Adv
[Algorithm][C++] SWEA 1249. [S/W 문제해결 응용] 보급로 문제
hotamul 2021. 10. 27. 23:39SWEA 1249. [S/W 문제해결 응용] 보급로 문제
풀이 핵심
1. BFS 문제
2. 경로의 시간을 저장하는 check 배열을 모두 9 * 100 * 100 으로 초기화 한다. (9 * 100 * 100이 가장 큰 값)
3. 새로운 곳(nr, nc)에 방문 할 때 check[nr][nc] 보다 check[cur.r][cur.c] + map[nr][nc] 가 작을 경우에만 큐에 push 한다. 여기서 cur은 현재 위치 정보가 담긴 struct 이다.
코드
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <queue>
using namespace std;
int T, N;
int map[100][100];
int check[100][100];
struct POS { int r, c; };
const int dr[] = { 0,0,1,-1 };
const int dc[] = { 1,-1,0,0 };
int solve() {
queue<POS> q;
check[0][0] = 0;
q.push({ 0,0 });
while (!q.empty()) {
POS cur = q.front();
q.pop();
for (int dir = 0; dir < 4; dir++) {
int nr = cur.r + dr[dir];
int nc = cur.c + dc[dir];
if (nr < 0 || nr >= N || nc < 0 || nc >= N) {
continue;
}
if (check[nr][nc] > check[cur.r][cur.c] + map[nr][nc]) {
check[nr][nc] = check[cur.r][cur.c] + map[nr][nc];
q.push({ nr,nc });
}
}
}
return check[N - 1][N - 1];
}
int main() {
// freopen("input.txt", "r", stdin);
scanf("%d", &T);
for (int tc = 1; tc <= T; tc++) {
scanf("%d", &N);
for (int r = 0; r < N; r++) {
for (int c = 0; c < N; c++) {
scanf("%1d", &map[r][c]);
check[r][c] = 9 * 100 * 100;
}
}
int ret = solve();
printf("#%d %d\n", tc, ret);
}
return 0;
}
'myt-algorithm-practice > Samsung SW Certi Adv' 카테고리의 다른 글
[Algorithm][C++] JUNGOL 4197: swat. 연습실 (0) | 2021.10.28 |
---|---|
[Algorithm][C++] JUNGOL 4193: swat. 애벌레 키우기1 (0) | 2021.10.28 |
[Algorithm][C++] BOJ 12100 2048(Easy) (0) | 2021.10.24 |
[Algorithm][C++] BOJ 13460 구슬 탈출 2 (0) | 2021.10.24 |
[Algorithm][C++] BOJ 20057 마법사 상어와 토네이도 (0) | 2021.10.17 |
Comments