본문 바로가기

알고리즘(C++)/백준 문제풀이(C++)4

2178 미로탐색 코드 #include #include #include #define MAX 101 using namespace std; int N, M; // 미로 크기 int map[MAX][MAX]; // 미로 표현용 2차원 배열 int visited[MAX][MAX]; // 방문 기록용 2차원 배열 int check[MAX][MAX]; // 이동칸 기록용 2차원 배열 int dx[4] = { -1, 1, 0, 0 }; // 상하좌우 x축 int dy[4] = { 0, 0, -1, 1 }; // 상하좌우 y축 queue q; // queue에 탐색 기록 void bfs(int start_x, int start_y) { visited[start_x][start_y] = 1; q.push(make_pair(start_x.. 2023. 5. 6.
1149 RGB 거리 코드 #include #include using namespace std; int N; int House[1001][3]; int DP[1001][3]; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> N; House[0][0] = 0; House[0][1] = 0; House[0][2] = 0; DP[0][0] = 0; DP[0][1] = 0; DP[0][2] = 0; for (int i = 1; i > num; House[i][j] = num; } } //집이 1개 DP[1][0] = House[1][0]; DP[1][1] = House[1][1]; DP[1][2] = House[1][2]; //집이 .. 2023. 5. 6.
2606 바이러스 코드 #include #include #include #include using namespace std; int N, M; vectoradjList[101]; bool isvisited[101] = { 0 , }; stackst; int DFS(int V) { int cnt = 0; st.push(V); while (!st.empty()) { int cur = st.top(); st.pop(); if(isvisited[cur] == true) { continue; } isvisited[cur] = true; if(cur != 1) cnt++; for (int i = adjList[cur].size() - 1; i >= 0; i--) { int next = adjList[cur][i]; st.push(n.. 2023. 5. 6.
1260번 DFS와 BFS (실버 2) 코드 #include #include #include #include #include using namespace std; int N, M, S; vectoradjList[1001]; bool isVisited[1001] = { false, }; stack st; queue que; void dfs(int V) { st.push(V); while (!st.empty()) { int cur = st.top(); st.pop(); if (isVisited[cur]) { continue; } isVisited[cur] = true; cout > M >> S; for (int i = 0; i > u >> v; adjList[u].push_back(v); adjLi.. 2023. 4. 30.
728x90