본문 바로가기

dfs

10403 Intrepid climber dfs를 사용해서 풀었다. 친구에게로 가는 모든 경로 에너지 합에서 가장 큰 에너지를 빼면 되는 건 알겠다.. 그런데 구현이 문제지... "친구에게 가는 경로의 합" 을 구하는게 어려웠는데 현욱님 구현보고 도움을 받았다. 친구를 거칠 경우 true를 리턴하게 하고 true일 경우 에너지를 더하기 그리고 path를 갱신해주면서 해당 노드까지 가는 에너지의 합을 구하는 것도 기억해두자 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #de.. 더보기
22352 항체 인식 처음에 문제 이해를 못해서 조금 애먹었다. 주사를 놓으면 구역이 특정 숫자로 바뀌는데 그게 백신인지 맞추라고??? 특정 숫자로 바뀌는데 뭐 어쩌라고 싶었다. 알고보니 그냥 범위에 맞게 바뀌는지 확인하는게 목적인 것 같다. 처음에 든 생각은 1번 사진이랑 2번 사진을 한 칸씩 비교하는데 다른 숫자가 나오면 그 숫자를 기준으로 dfs를 돌려서 같은 숫자 범위에 백신을 맞게 한다. 그 다음 또 다른 숫자가 나오고 그게 백신을 맞지 않은 범위라면 NO를 출력하고 아니면 YES를 출력하게 했다. #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu.. 더보기
15900 나무 탈출 어떻게 풀지 그려봤을 때 트리의 높이의 합이 짝수면 형석이가 이기고 홀수면 성원이가 이긴다. 그래서 트리의 높이를 구하는 게 관건인데.. 생각 1 bfs를 쓰자 안 써서 써보고 싶었음.. 하지만 bfs를 쓰면 리프노드를 못 찾으니 리프노드까지의 길이를 알지 못한다. 생각 2 dfs 다음 노드가 존재하지 않으면 리프노드란 뜻이므로 리프노드를 찾을 수 있다. 그럼 리프노드의 길이의 합을 구할 수 있다 생각 3 그런데 이거 리프노드 길이의 합으로 생각 안 하고 그냥 전체 edge의 개수라고 생각하면 되지 않나??? 줄 수 세면 되는 거 아냐???? 아니었다고 한다 --미완-- 음... size가 0인거 출력해보니 1이 나온다. 왜지?? 나중에 찾아보기로 #include #include #include #inc.. 더보기
1260 DFS와 BFS C번 문제가 BFS문제인데 아직 BFS 코드도 짜보지 않아서,,, 연습 겸 쉬운 bfs 구현문제를 풀어보았다. https://burningjeong.tistory.com/283?category=852372 BFS 너비 우선 탐색 #include #include #include #include #include #include #include #include #include #include #define xx first #define yy second using namespace std; using i64 = long long; using ii = pair ; using ii6.. burningjeong.tistory.com https://burningjeong.tistory.com/208 DFS 깊이 우선.. 더보기