코테스터디_3주차

임정우·2023년 3월 10일

2606 바이러스

from collections import deque
n = int(input())
m = int(input())

graph = []
for i in range(n+1):
    graph.append([0] * (n + 1))

for i in range(m):
    x,y = map(int, input().split())
    graph[x][y] = 1
    graph[y][x] = 1
    
marked = [False]*(n+1)
marked[1] = True

def exploration():
    answer = 0
    queue = deque()
    queue.append(1)
    while queue:
        x = queue.popleft()
        for i in range(1,n+1):
            if graph[x][i] == 1 and marked[i] == False:
                queue.append(i)
                marked[i] = True
                answer += 1
                
    return answer

print(exploration())   

1697_숨바꼭질

def to_mul(i,count):
    if i == 0:
        return
    index = i
    while True:
        index *= 2
        if index == x:
            continue
        count += 1
        if index >= len:
            break
        coordinate[index] = min(count,coordinate[index])

x,y = map(int, input().split())

if x == 0 and y == 0:
    print(0)
elif x == 0 and y == 1:
    print(1)
else:
    len = max(x,y)*2
    coordinate = [9999999] * (len)
    to_mul(x,0)
    dx = [1,-1]
    coordinate[x] = 0
    count = 0
    
    for i in reversed(range(0,x)):
        count += 1
        coordinate[i] = count
        to_mul(i, coordinate[i])
    for i in range(x+1,len-1):
        if i % 2 == 0:
            coordinate[i] = min(coordinate[i-1] + 1, coordinate[int(i/2)] + 1,coordinate[i])
        else:
            coordinate[i] = min(coordinate[i-1]+1, coordinate[i+1] + 1,coordinate[i])
        to_mul(i,coordinate[i])

    print(coordinate[y])

     
profile
경희대학교 소프트웨어융합학과

0개의 댓글