[Python] 1260번 DFS와 BFS

2025. 2. 24. 16:31·coding test/Baekjoon

https://www.acmicpc.net/problem/1260

 

코테 준비하면서 오랜만에 다시 보게 된 DFS와 BFS

 

DFS를 풀 때는 재귀함수를 통해서, BFS를 풀 때는 queue를 통해서 풀었다.

def bfs(qu,visited):
    while qu:
        q=qu.pop(0)
        if visited[q]==True:
            pass
        else:
            print(q,end=' ')
            visited[q]=True
            for i in range(n+1):
                if matrix[q][i]==1 and visited[i]==False:
                    qu.append(i)
                    
n,m,v=map(int,input().split()) #n:정점수,m:간선수,v:시작정점
matrix=[[0]*(n+1) for _ in range(n+1)]

for _ in range(m):
    v1,v2=map(int,input().split())
    matrix[v1][v2]=1
    matrix[v2][v1]=1
    

visited_dfs = [False for _ in range(n + 1)]  # DFS용 방문 체크
visited_bfs = [False for _ in range(n + 1)]  # BFS용 방문 체크

bfs([v],visited)

 

여기서 마지막에 원래는 visited를 하나만 했지만 하나만 하니까 dfs()와 bfs()에서 visited 리스트를 공유하는 문제가 생겼다. 이전에 똑같이 생겼던 shallow copy의 문제였다. 그래서 visited를 각각 따로 만들어주었다.

 

'coding test > Baekjoon' 카테고리의 다른 글

[Python] 4963번 섬의 개수 / 재귀함수.ver  (0) 2025.04.08
[Python] 2609번 최대공약수와 최소공배수  (0) 2025.02.24
[Python] 16916번 부분 문자열  (0) 2025.02.18
[Python] 3085번 사탕게임  (0) 2025.02.18
[Python] 3460번 이진수  (0) 2025.02.16
'coding test/Baekjoon' 카테고리의 다른 글
  • [Python] 4963번 섬의 개수 / 재귀함수.ver
  • [Python] 2609번 최대공약수와 최소공배수
  • [Python] 16916번 부분 문자열
  • [Python] 3085번 사탕게임
wish404
wish404
자동 로그
  • wish404
    wish-log
    wish404
    • 홈
    • 태그
    • 방명록
    • github
    • 분류 전체보기 (75)
      • log (8)
        • 블로그 관리 (5)
        • 에러 모음 (2)
      • coding test (47)
        • Algorithm (4)
        • Baekjoon (34)
        • SW Expert Academy (6)
        • etc (3)
      • 프로그래밍 언어 (7)
        • JAVA (7)
      • 데이터 엔지니어링 (5)
        • Kafka (0)
        • Spark (4)
        • Airflow (1)
        • Elasticsearch (0)
      • 머신러닝&딥러닝 (3)
        • Kaggle 스터디 (3)
        • 논문 리뷰 (0)
        • MLOps (0)
      • 신입 개발자가 되기까지 (5)
        • 취준일기 (1)
        • SSAFY (2)
        • 프로젝트 (1)
        • CS 공부 (1)
  • 인기 글

  • 태그

    dfs
    heapq
    BFS
    싸피
    틀린문제
    SSAFY
    dp
    전위순회
    플로이드워샬
    복습해야지
    후위순회
    복습
    최단 경로
    중위순회
    벨만포드
    그리디 알고리즘
    dijk
    다익스트라
    Dijkstra
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wish404
[Python] 1260번 DFS와 BFS
상단으로

티스토리툴바