We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 2606๋ฒˆ: ๋ฐ”์ด๋Ÿฌ์Šค - ํŒŒ์ด์ฌ

Redddy 2022. 5. 19. 21:08

๐Ÿ˜€ ์„œ๋ก 

DFS๋ฅผ ์ œ๋Œ€๋กœ ๋‹ค๋ค„๋ณด์ง€ ๋ชปํ•˜์—ฌ ์˜ค๋Š˜๋ถ€ํ„ฐ DFS, BFS ๋ฌธ์ œ ํ•˜๋‚˜์”ฉ์€ ํ’€ ์˜ˆ์ •์ด๋‹ค!
๊ทธ๋ž˜์„œ ๋„์ „ํ•ด๋ณธ ๋ฌธ์ œ๋Š” "๋ฐ”์ด๋Ÿฌ์Šค" ์ „์— ์Šคํ„ฐ๋””๋•Œ ๋„์ „ํ•˜์˜€๋‹ค๊ฐ€ ์‹คํŒจํ•œ ๋ฌธ์ œ์ด๋‹ค. ๊ทธ๋•Œ๋Š” DFS์™€ BFS์˜ ๊ฐœ๋…์„ ์ž˜ ๋ชฐ๋ž๊ธฐ์— ์‹คํŒจํ•˜์˜€์œผ๋‚˜, ์ด์ œ๋Š” ๋‹ค๋ฅด๋‹ค!ใ…Žใ…Ž

 

๐Ÿ“• ํ’€์ด

์ฃผ์–ด์ง„ ์ปดํ“จํ„ฐ์˜ ์ˆ˜๋กœ ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ํ›„์— ์ฃผ์–ด์ง€๋Š” ์ธํ’‹ ๊ฐ’์„ ๊ฐ์ž ์œ„์น˜์— ๋„ฃ์–ด์ค€ ๋’ค DFS๋ฅผ ๋Œ๋ ธ๋‹ค.

 

๐Ÿ’ป ์ฝ”๋“œ

import sys
input = sys.stdin.readline

# dfs ์ •์˜
def dfs(graph, v, visited):
    visited[v] = True
    for i in graph[v]:
        if not visited[i]:
            dfs(graph, i, visited)
            
com = int(input().rstrip()) # ์ปดํ“จํ„ฐ์˜ ๊ฐฏ์ˆ˜
visited = [False] * (com+1) # ๋ฐฉ๋ฌธ์„ ์ฒดํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ถˆ๋ฆฌ์•ˆ ๋ฆฌ์ŠคํŠธ
connect = [] # 1 : 1 ์—ฐ๊ฒฐ๋กœ ์ฃผ์–ด์งˆ ์ธํ’‹์„ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ
graph = [[] for i in range(com+1)] # ์ตœ์ข…์ ์ธ ๊ทธ๋ž˜ํ”„

for i in range(int(input().rstrip())):
    connect.append(list(map(int, input().rstrip().split()))) # ์—ฐ๊ฒฐ๋œ ์ปดํ“จํ„ฐ ๋‹ด์Œ

for j in connect: # ์—ฐ๊ฒฐ๋œ๊ฑธ ํ•˜๋‚˜ํ•˜๋‚˜ ๋œฏ์–ด๋ด„
    for k in range(1, com+1): 
        # ์–ด๋–ค ์ปดํ“จํ„ฐ๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๋Š”์ง€ ์ฒดํฌ
        if k in j:
            graph[k].append(*set(j)-{k}) # ๊ทธ๋ž˜ํ”„์— ๊ฐ’ ์ง‘์–ด๋„ฃ์Œ

# ์˜ˆ์ œ ์ž…๋ ฅ ๋„ฃ์œผ๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ
# graph = [
#     [],
#     [2,5],
#     [1,3],
#     [2],
#     [7],
#     [1,2,6],
#     [5],
#     [7]
# ]

dfs(graph, 1, visited)
# ๋ฐฉ๋ฌธํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด, ๊ฐ์—ผ๋๋‹ค๋Š” ๊ฒƒ! ์ฆ‰ True ๊ฐ’์„ ์นด์šดํŠธํ•ด์„œ ์ถœ๋ ฅํ•œ๋‹ค. -1 ํ•œ ์ด์œ ๋Š” 1๋ฒˆ ์ปดํ“จํ„ฐ๋ฅผ ํ†ตํ•ด 
# ๊ฐ์—ผ๋˜๋Š” ์ปดํ“จํ„ฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ 1๋ฒˆ ์ปดํ“จํ„ฐ๋Š” ์ œ์™€ํ•œ๋‹ค.
print(visited.count(True)-1)

์œ”๋ฐ”์ด๋Ÿฌ์Šค ๋ฌด์…”!

๐Ÿ“Ž ๋ฌธ์ œ ๋งํฌ : ๋ฐ”์ด๋Ÿฌ์Šค

 

2606๋ฒˆ: ๋ฐ”์ด๋Ÿฌ์Šค

์ฒซ์งธ ์ค„์—๋Š” ์ปดํ“จํ„ฐ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ปดํ“จํ„ฐ์˜ ์ˆ˜๋Š” 100 ์ดํ•˜์ด๊ณ  ๊ฐ ์ปดํ“จํ„ฐ์—๋Š” 1๋ฒˆ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ปดํ“จํ„ฐ ์Œ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด

www.acmicpc.net