혼종 꼬지마루
예전 삼성전자 SW Test A형을 딸 때 풀었던 문제랑 비슷해보여서 같은 방법으로 접근했다가 시간초과 났던 문제... 그래서 갯수에 상관없이 비트마스킹 + DFS를 사용하면 되는문제 순서에 상관이 없다는 말이 순서가 바껴도 같은 걸 사용하면 답의 갯수에 추가되는줄 알고 순열로 넣었다가 25!, 아니 예시인 9개에서도 시간초과 그래서 그냥 한 단어를 넣고, 안넣고 두가지 DFS로 문제 해결 12345678910111213141516171819202122232425262728293031323334353637#include #include using namespace std; int check[12], visit[12];char A[102];int N, com;;long long dab; void dfs(i..
그냥 문제에 조건에 맞게 BFS만 잘 구현해주면 될 것 같았던 문제 하지만 visit을 체크하는 과정에서 통나무의 방향을 따로 체크해줘야 하기 때문에 3차원 check배열이 필요했다 그 외에는 문제의 조건에 맞게만 구현해주고, 3개를 한꺼번에 움직이는 것이 귀찮을 뿐 그냥 저냥 할만했던 문제 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114..
BFS를 총 4번던져서 풀수 있는 문제 이 문제도 stl을 사용하면 풀 수 없다고 생각 그리고....다시 풀어보라하면 절대 풀지 않을 문제.... 문제는 되게 간단해보이게 짧게 나오지만, 개인적으로 구현이 제대로 안되서 한 20번은 넘게 틀린 것 같다 1. 먼저 A를 연결 시켜본다. BFS를 던져서 두 점이 연결되는 지점이 오면 역추적해서 그 경로에 마킹 이때 B의 양 끝점은 비켜가도록 조심해야한다(이것 때문에 한 10번은 틀림...) 2. A의 연결점이 마킹되어 있는 상태에서 B를 BFS로 연결시킨다. 이 두개가 연결이 된다면, A의 최단길이, B의 최단길이를 더한다. 3. 위의 방법을 B->A순으로 한 번 더 해준다. 이렇게 총 2번의 연결을 통해 나온 답 중 최단의 것을 사용 연결할 수 없다면 IM..