728x90
https://www.acmicpc.net/problem/20364
import sys
input = sys.stdin.readline
n, q = map(int, input().split())
visited = set() # 이미 오리가 차지하고 있는 땅
def traverse(x):
global visited
node = x
answer = 0
while node > 0:
if node in visited:
answer = node # 역순으로 방문하므로 가장 최신의 node가 처음 만나는 node가 된다.
node //= 2
if answer == 0: # 이미 차지한 땅을 방문하지 않은 경우
visited.add(x)
print(answer)
for i in range(q):
x = int(input().rstrip())
traverse(x)
728x90
'Algorithm (PS)' 카테고리의 다른 글
[백준] 1654번 랜선자르기 Python - 이진탐색 (0) | 2022.12.31 |
---|---|
[백준] 2805번: 나무자르기 Python - 이진탐색 (0) | 2022.12.31 |
[프로그래머스] 순위 검색 Python3 (0) | 2022.12.27 |
[백준] 3190번: 뱀 (파이썬/Python) - 시뮬레이션, 구현 (0) | 2022.12.27 |
[백준] 17070번 : 파이프 옮기기 1 (파이썬/python) 그래프탐색/dp (0) | 2022.12.26 |