๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐‘†๐‘ข๐‘›๐‘ โ„Ž๐‘–๐‘›๐‘’ ๐‘Ž๐‘“๐‘ก๐‘’๐‘Ÿ ๐‘Ÿ๐‘Ž๐‘–๐‘›โœง

[Python] ๋ฐฑ์ค€ 1325 & ๋ฐฑ์ค€ 1668 ๋ณธ๋ฌธ

์ฒ˜์Œ์—๋Š” dfs๋กœ ์‹œ๋„ํ–ˆ๋‹ค๊ฐ€ ์•„๋ฌด๋ฆฌ ํ•ด๋„ ์‹œ๊ฐ„์ดˆ๊ณผ, ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ...

๋Œ€ํ™˜์žฅ;;

import sys
sys.setrecursionlimit(10**6)

n, m = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
    a, b = map(int, sys.stdin.readline().split())
    graph[b].append(a)

def find_comp(num, visited):
    for next in graph[num]:
        if next not in visited:
            visited.add(next)
            find_comp(next, visited)
    return len(visited)

result = []
for i in range(1, n+1):
    visited = set()
    visited.add(i)
    cnt = find_comp(i, visited)
    result.append(cnt)

max_value = max(result)
for i in range(len(result)):
    if result[i] == max_value:
        print(i + 1, end=" ")

 

์ •๋‹ต์€ ์ž˜ ๋‚˜์˜ค๋Š”๋ฐ ์–ด๋””๊ฐ€ ์ž˜๋ชป๋๋Š”์ง€ ๋ชฐ๋ผ์„œ bfs๋กœ ์žฌ์‹œ๋„...

 

import sys
from collections import deque

n, m = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
    a, b = map(int, sys.stdin.readline().split())
    graph[b].append(a)

def bfs(num, visited):
    queue = deque()
    queue.append(num)
    visited[num] = True
    while queue:
        now = queue.popleft()
        for next in graph[now]:
            if not visited[next]:
                queue.append(next)
                visited[next] = True
                
    return visited.count(True)

result = []
for i in range(1, n+1):
    visited = [False] * (n+1)
    result.append(bfs(i, visited))

max_cnt = max(result)
for i in range(len(result)):
    if result[i] == max_cnt:
        print(i+1, end = " ")

๊ฒฐ๊ณผ๋Š” ์„ฑ๊ณต! ใ… ใ… 

dfs ์ฝ”๋“œ ์†๋ด์„œ ๋‹ค์‹œ ์˜ฌ๋ ค๋ด์•ผ์ง•...

 

# ๋ฐฑ์ค€ 1668 ํŠธ๋กœํ”ผ

n = int(input())
trophies = []
for _ in range(n):
    trophies.append(int(input()))

def left():
    smallest = trophies[0]
    cnt = 1
    for i in trophies:
        if smallest < i:
            cnt += 1
            smallest = i

    return cnt