𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴💻/[𝐏𝐲𝐭𝐡𝐨𝐧] 𝐀𝐥𝐠𝐨𝐫𝐢𝐭𝐡𝐦
[Python] 백준 10451 & 백준 2331
🤍Ryusun🤍
2023. 11. 28. 20:25
# 10451
from collections import deque
def bfs(start_node):
queue = deque()
queue.append(start_node)
visited[start_node] = True
while queue:
now = queue.popleft()
for next in graph[now]:
if not visited[next]:
queue.append(next)
visited[next] = True
n = int(input())
for _ in range(n):
m = int(input())
num_list = list(map(int, input().split()))
graph = [[] for _ in range(m+1)]
visited = [False] * (m+1)
for i in range(m):
graph[i+1].append(num_list[i])
graph[num_list[i]].append(i+1)
cnt = 0
for i in range(1, m+1):
if not visited[i]:
bfs(i)
cnt += 1
print(cnt)
#백준 2331
A, P = map(int, input().split())
num_list = [A]
while True:
a = 0
for i in str(num_list[-1]):
a += int(i) ** P
if a in num_list:
break
num_list.append(a)
print(num_list.index(a))