티스토리 뷰

백준

백준 2606 문제풀이 [python]

ys.k 2023. 6. 21. 09:55

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

dfs와 bfs문제이다.

 

이 문제를 풀며 그래프에 조금 약하다는 생각이 들었다.

 

따라서 백준 쉬운 100 문제를 다 풀고 난 후, 그래프와 dp 문제 항목을 풀어야겠다고 느꼈다.

 

코드

import sys as s
from collections import deque

a = int(s.stdin.readline())
n = int(s.stdin.readline())

array = [[] for _ in range(a+1)]


visited = [0] * (a+1)


for _ in range(n):
    b, c = map(int,s.stdin.readline().split())
    array[b].append(c)
    array[c].append(b)

def dfs(val):
    visited[val] = 1
    for i in array[val]:
        if visited[i]==0:
            dfs(i)
    return

dfs(1)

print(sum(visited[2:]))

dfs로 풀었다.

 


배운 점

1. for 반복문에서 배열에 들어있는 요소도 출력할 수 있다.

2. 이중 배열을 선언할 때, [[0,0]] * n 식으로 선언하면 추후, 인덱스에 직접 값 삽입 시 전체 인덱스에 변화가 생긴다.

 

'백준' 카테고리의 다른 글

백준 1026 문제풀이 [python]  (0) 2023.06.23
백준 1193 문제풀이 [python]  (0) 2023.06.22
백준 2442 문제풀이 [python]  (0) 2023.06.20
백준 10844 문제풀이 [python]  (0) 2023.06.20
백준 2667 문제풀이 [python]  (0) 2023.06.19
댓글