본문 바로가기
2222

Algorithm/DFS.BFS2

백준 - 1260 DFS와 BFS (파이썬) 첫 시도 : 上 문제를 파악하고 2차원 리스트형태로 만드는 것부터 막혔었다. 해답을 보고 했지만 이해하기가 어려웠다. 두번째 시도 : 中 해답을 보면 이제 어떤 식으로 짜여졌는지 이해가 간다. DFS, BFS를 이용하는 문제 핵심 1. 입력값으로 노드의 간선을 입력하는데 2차원 배열형태로 갈 수 있는 곳을 1로 표시해서 만든다. 2. 방문한 노드는 다시 방문하지 않도록 visited를 선언한다. 3. 1번 노드부터 시작하기 때문에 리스트들을 만들 때 제일앞은 건너뛴다고 가정하고 노드의 개수 +1 로 리스트를 만든다. 연습을 위해 DFS와 BFS를 나눠서 코드를 써보자. 먼저 DFS. n , m, s = map(int, input().split()) visited = [False] * (n+1) graph.. 2021. 6. 30.
이코테-음료수 얼려먹기 (파이썬) 첫 시도 : 上 이해도 하지 못했다. 그냥 읽었을 뿐 두번째 시도 : 中 일부가 보였다. 약간 부분적으로 이해는 했으나 전체적으로 이해를 못했다. 약간 이해해도 곧바로 까먹었다. 세번째 시도 : 下 전체가 보였다. 전체적인 흐름을 읽을 수 있다. 이런 유형. 이제 코드도 짤 수 있다. DFS를 이용하는 문제 예를 들어서 3x3 틀이 있다고 가정했을 때 0과 1로 채울 수 있다. 1은 틀. 즉, 막힌 부분이고 0은 다 연결되어 있는 부분이다. 얼음을 얼렸을 때 몇개의 얼음을 만들 수 있는지 그런 문제다. 좀 더 직관적으로 보면 아래와 같은 예시에서는 총 3개의 얼음을 만들 수 있다. --------- 0 0 1 0 1 0 1 0 1 --------- 원리 2차원 리스트를 만들고 (x, y)가 0이면 1로 .. 2021. 6. 29.