๐ Problem Solving/Baekjoon
5567๋ฒ: ๊ฒฐํผ์
์์ 1์ ๊ฒฝ์ฐ 2์ 3์ ์๊ทผ์ด์ ์น๊ตฌ์ด๋ค. ๋, 3๊ณผ 4๋ ์น๊ตฌ์ด๊ธฐ ๋๋ฌธ์, 4๋ ์๊ทผ์ด์ ์น๊ตฌ์ ์น๊ตฌ์ด๋ค. 5์ 6์ ์น๊ตฌ๋ ์๋๊ณ , ์น๊ตฌ์ ์น๊ตฌ๋ ์๋๋ค. ๋ฐ๋ผ์ 2, 3, 4 3๋ช ์ ์น๊ตฌ๋ฅผ ๊ฒฐํผ์์ ์ด๋
www.acmicpc.net
import sys
from collections import deque
input = sys.stdin.readline
n = int(input())
m = int(input())
graph = [[] for _ in range(n + 1)]
def search(start):
visited = [0] * (n + 1)
visited[start] = 1
queue = deque()
queue.append((start, 0))
answer = 0
while queue:
x, cnt = queue.popleft()
for i in graph[x]:
if visited[i] == 0 and cnt < 2:
visited[i] = 1
queue.append((i, cnt + 1))
answer += 1
return answer
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
graph[b].append(a)
print(search(1))
ํด์ค
์๊ทผ์ด์ ํ๋ฒ์ด 1์ด๊ธฐ ๋๋ฌธ์ search์ 1์ ๋๊ฒจ์ค ํจ์๋ฅผ ์คํํ๋ค. deque์๋ ์น๊ตฌ์ ํ๋ฒ๊ณผ cnt๋ฅผ ๋ฃ์ด์ค๋ค. ์ฌ๊ธฐ์ cnt๋ ๊ด๊ณ๋ฅผ ์๋ฏธํ๋ค. ์๋ฅผ ๋ค์ด, cnt๊ฐ 1์ด๋ผ๋ฉด ์ง์ ์น๊ตฌ, cnt๊ฐ 2๋ผ๋ฉด ์น๊ตฌ์ ์น๊ตฌ๋ฅผ ์๋ฏธํ๋ค.
visited ๋ฐฉ๋ฌธ์ฒ๋ฆฌ์ ์น๊ตฌ ๋๋ ์น๊ตฌ์ ์น๊ตฌ๋ผ๋ ์กฐ๊ฑด์ด ๋ง์กฑํ๋ฉด deque์ ํ๋ฒ๊ณผ cnt๋ฅผ ์ ์ฅํ๊ณ answer๋ฅผ ํ๋์ฉ ๋๋ ค์ค๋ค.
'๐ Problem Solving > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-1138] ํ ์ค๋ก ์๊ธฐ / Python (0) | 2021.06.21 |
---|---|
[๋ฐฑ์ค-1051] ์ซ์ ์ ์ฌ๊ฐํ / Python (0) | 2021.06.21 |
[๋ฐฑ์ค-3085] ์ฌํ ๊ฒ์ / Python (0) | 2021.06.21 |
[๋ฐฑ์ค-10973] ์ด์ ์์ด / Python (0) | 2021.06.21 |
[๋ฐฑ์ค-1748] ์ ์ด์ด ์ฐ๊ธฐ 1 / Python (0) | 2021.06.19 |