백준 #1260

2024. 3. 3. 01:14·알고리즘

난이도 : 실버2
소요시간 :  57분
사용한 풀이법 : dfs_재귀, bfs_큐


풀이 과정

  1. 입력받은 n값에 대한 탐색용 배열 생성 후 false 초기화
  2. bfs, dfs 각각의 방문 탐색용 배열 생성 후 false 초기화
  3. m에 대해 반복문 돌리면서 입력된 값들에 해당하는 인덱스 값 True 변환
    1. 각각의 행의 값들 중 True값은 연결된 엣지의 번호를 뜻함
    2. ex) 1번 행의 3,4열이 true이면, 1-3/1-4 연결된 것!
  4. bfs는 큐를 이용한 풀이
    1. python 특성상 queue보다 deque가 효율적이라서 deque사용
  5. dfs는 재귀를 이용한 풀이
    1. 스택으로 할라다가 실패함ㅎ..

작성 코드

from collections import deque
n,m,v = map(int, input().split(' '))

g=[[False]*(n+1) for _ in range(n+1)] # 탐색용 그래프 배열 false 초기화
bfs_vis = [False]*(n+1) #bfs용 방문 체크 
dfs_vis = [False]*(n+1) #dfs용 방문 체크


for _ in range(m):
    a,b = map(int,input().split(' '))
    g[a][b] = True
    g[b][a] = True

def bfs(v):
    q = deque([v])
    bfs_vis[v]=True
    while q:
        v = q.popleft()
        print(v,end=' ')
        for i in range(n+1):
            if bfs_vis[i] == False and g[v][i] == True :
                q.append(i)
                bfs_vis[i] = True

def dfs(v,cnt):
    dfs_vis[v] = True
    print(v,end=' ')
    if cnt == n: return 
    for i in range(n+1):
        if dfs_vis[i]== False and g[v][i] == True :
            cnt += 1
            dfs(i,cnt)
                 
dfs(v,0)
print("")
bfs(v)

피드백

dfs를 스택으로 풀고싶었는데 사고가 더 안돌아가서 그냥 재귀로 풀었다
원래는 c++사용자 이지만 python으로 한번 해봤는데 뭔가 더 잘풀리는거 같다. 사용언어 바꿔볼까나..
저작자표시 (새창열림)

'알고리즘' 카테고리의 다른 글

백준 #9095: 1,2,3 더하기  (1) 2024.03.06
백준 #1932  (0) 2024.03.03
백준 #1182 부분 수열의 합  (1) 2024.02.12
백준 #10026 적록색약  (1) 2024.02.11
백준 #1012 유기농 배추  (0) 2024.02.11
'알고리즘' 카테고리의 다른 글
  • 백준 #9095: 1,2,3 더하기
  • 백준 #1932
  • 백준 #1182 부분 수열의 합
  • 백준 #10026 적록색약
70_0ewd
70_0ewd
내가 보려고 적는 나의 공부 기록
  • 70_0ewd
    Seung's Learning Record
    70_0ewd
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • DE (2)
      • Dev Tool (29)
        • Flutter (5)
        • AWS (8)
        • Django (7)
        • Spring boot (9)
      • 프로그래밍 (30)
        • C++ (0)
        • JAVA (6)
        • SQL (13)
        • Python (8)
        • WEB (3)
      • 알고리즘 (26)
      • CS (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    DP
    Java
    깊이 우선 탐색
    Queue
    백준
    공룡책
    스택
    group by
    DFS
    heap
    AWS
    자바
    파이썬
    JOIN
    데브코스
    delete
    SQL
    백트래킹
    C++
    Flutter
    Python
    프로그래머스
    웹 스크래핑
    너비 우선 탐색
    플러터
    django
    select
    stl
    BFS
    큐
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
70_0ewd
백준 #1260
상단으로

티스토리툴바