728x90
반응형
https://www.acmicpc.net/problem/2210
1. Logic
5X5배열에 cnt도 6이기 때문에 브루트포싱 돌려도 시간 복잡도를 넘지 않는다!
DFS로 해결했다
2. Code
#include<bits/stdc++.h>
using namespace std;
char graph[5][5];
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, -1, 0, 1};
unordered_set<string>s;
void solve(int yy, int xx, int cnt, string str) {
if(cnt == 6) {
s.insert(str);
return;
}
for(int i = 0; i < 4; i++) {
int ny = yy + dy[i];
int nx = xx + dx[i];
if(nx < 0 || ny < 0 || nx >= 5 || ny >= 5) continue;
solve(ny, nx, cnt+1, str+graph[ny][nx]);
}
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
cin >> graph[i][j];
}
}
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
solve(i, j, 0, ""+graph[i][j]);
}
}
cout << s.size();
}
알고리즘 Solve 후 제가 생각한 Logic을 기록하는 개인 공부 블로그입니다.
내용 중 최적화가 가능한 부분등은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐
728x90
반응형
'Algorithm > Beakjoon' 카테고리의 다른 글
[백준/Baekjoon] 1647 도시 분할 계획 C++ :: MST & Kruskal, Prim (0) | 2023.12.16 |
---|---|
[백준/Baekjoon] 1197 최소 스패닝 트리 C++ :: MST & Kruskal, Prim (0) | 2023.12.16 |
[백준/Baekjoon] 1189 컴백홈 C++ :: Graph & DFS (0) | 2023.12.14 |
[백준/Baekjoon] 1326 폴짝폴짝 C++ :: Graph & BFS (0) | 2023.12.13 |
[백준/Baekjoon] 1525 퍼즐 C++ :: BFS & Set & Map (0) | 2023.12.12 |